Umumiy sinf statik maydonlari.
Umumiy sinf ma'lum bir tur bilan yozilsa, uning statik a'zolari to'plami yaratiladi. Masalan, Person sinfi quyidagi statik maydonni belgilaydi:
class Person
{
public static T? code;
public T Id { get; set; }
public string Name { get; set; }
public Person(T id, string name)
{
Id = id;
Name = name;
}
}
Endi biz sinfni ikkita turdagi int va string bilan yozamiz:
Person tom = new Person(546, "Tom");
Person.code = 1234;
Person bob = new Person("abc", "Bob");
Person.code = "meta";
Console.WriteLine(Person.code); // 1234
Console.WriteLine(Person.code); // meta
Natijada Person va Person uchun code o'zgaruvchisi yaratiladi.
Bir nechta umumiy parametrlardan foydalanish. Umumlashganlar bir vaqtning o'zida bir nechta umumiy parametrlardan foydalanishi mumkin, ular bir xil yoki har xil turlarni ifodalashi mumkin:
class Person
{
public T Id { get;}
public K Password { get; set; }
public string Name { get;}
public Person(T id, K password, string name)
{
Id = id;
Name = name;
Password = password;
}
}
Bu yerda Person sinfi ikkita umumiy parametrdan foydalanadi, biri identifikator uchun, ikkinchisi parol xususiyati uchun. Keling, ushbu sinfni qo'llaymiz:
Person tom = new Person(546, "qwerty", "Tom");
Console.WriteLine(tom.Id); // 546
Console.WriteLine(tom.Password);// qwerty
Bu yerda Person obyekti int va s_tring turlari bilan yoziladi. Ya'ni, int tipi T umumiy parametr sifatida, K parametri uchun s_tring turi ishlatiladi.
Umumlashtirilgan usullar. Umumiy sinflarga qo'shimcha ravishda siz umumiy parametrlardan xuddi shu tarzda foydalanadigan umumiy usullarni ham yaratishingiz mumkin. Masalan:
int x = 7;
int y = 25;
Swap(ref x, ref y); // или так Swap(ref x, ref y);
Console.WriteLine($"x={x} y={y}"); // x=25 y=7
string s1 = "hello";
string s2 = "bye";
Swap(ref s1, ref s2); // yoki Swap(ref s1, ref s2); shunday yoziladi
Console.WriteLine($"s1={s1} s2={s2}"); // s1=bye s2=hello
void Swap(ref T x, ref T y)
{
T temp = x;
x = y;
y = temp;
}
U parametrlarni mos yozuvlar bo'yicha qabul qiladigan va ularning qiymatlarini o'zgartiradigan umumiy Swap usulini belgilaydi. Bundan tashqari, bu holda, bu parametrlar qaysi turni ifodalashi muhim emas. Swap usulini chaqirganda, biz uni ma'lum bir tur bilan yozamiz va unga ushbu turga mos keladigan qiymatlarni o'tkazamiz.
Dostları ilə paylaş: |