Standart qiymatlar
Ba'zan umumiy parametrlarning o'zgaruvchilariga, shu jumladan null ga boshlang'ich qiymatni belgilash kerak bo'ladi. Lekin biz uni bevosita tayinlay olmaymiz:
T id = null;
Bunday holda biz default(T) operatoridan foydalanishimiz kerak. U mos yozuvlar turlariga null va qiymat turlariga 0 ni tayinlaydi:
class Account
{
T id = default(T);
}
Umumiy sinf statik maydonlari
Umumiy sinf ma'lum bir tur bilan yozilsa, uning statik a'zolari to'plami yaratiladi. Masalan, Account sinfida quyidagi statik maydon aniqlanadi:
class Account
{
public static T session;
public T Id { get; set; }
public int Sum { get; set; }
}
Endi biz sinfni ikkita turdagi int va string bilan yozamiz:
Account account1 = new Account { Sum = 5000 };
Account.session = 5436;
Account account2 = new Account { Sum = 4000 };
Account.session = "45245";
Console.WriteLine(Account.session); // 5436
Console.WriteLine(Account.session); // 45245
Natijada, Account va Account uchun session oʻzgaruvchisi yaratiladi.
Bir nechta umumiy parametrlardan foydalanish.
Umumlashganlar bir vaqtning o'zida bir nechta umumiy parametrlardan foydalanishi mumkin, ular turli xil turlarini ifodalashi mumkin:
class Transaction
{
public U FromAccount { get; set; } // qaysi hisobdan pul o'tkazmasi
public U ToAccount { get; set; } // pul o'tkazmasi qaysi hisob raqamiga
public V Code { get; set; } // operatsiya kodi
public int Sum { get; set; } // o'tkazma summasi
}
Bu erda Transaction sinfi ikkita umumiy parametrdan foydalanadi. Keling, ushbu sinfni qo'llaymiz:
Account acc1 = new Account { Id = 1857, Sum = 4500 };
Account acc2 = new Account { Id = 3453, Sum = 5000 };
Transaction, string> transaction1 = new Transaction, string>
{
FromAccount = acc1,
ToAccount = acc2,
Code = "45478758",
Sum = 900
};
Bu yerda Transaction obyekti Account va string turlari bo‘yicha teriladi. Ya'ni U universal parametr sifatida Account sinfi, V parametri uchun esa string turi qo'llaniladi. Shu bilan birga, siz ko'rib turganingizdek, Transaction yoziladigan sinfning o'zi umumiydir.
Do'stlaringiz bilan baham: |