1. Kortejlar bir xil miqdordagi elementlardan tashkil topishi kerak; 2. Kortejdagi har bir mos o'rindagi element o'zaro taqqoslana olishi kerak; 3. Taqqoslash birinchi o'zaro teng bo'lmagan yoki oxirgi elementlar taqqoslangandan so'ng to'xtaydi; 4. Kortej maydonlari nomlari taqqoslashda ahamiyatga ega emas. (int a, byte b) left = (5, 10); (long a, int b) right = (5, 10); Console.WriteLine(left == right); // True Console.WriteLine(left != right); // False var t1 = (A: 5, B: 10); var t2 = (B: 5, A: 10); Console.WriteLine(t1 == t2); // True Console.WriteLine(t1 != t2); // False
Console.WriteLine(t1 != (5, 12)); // True
Console.WriteLine((1, (2, 3)) == (1, (2, 3))); // True
// Console.WriteLine(t1 != (5, 10, 13)); // Xato
// Console.WriteLine((1, (2, 3)) != ((1, 2), 3))); // Xato
Kortejlar yaratish uchun 2 tur (usul) mavjud: System.ValueTuple yoki System.Tuple orqali. Ularning asosiy farqlari: 2. System.ValueTuple o'zgaruvchi, System.Tuple o'zgarmas. 3. System.ValueTuple elementlari maydonlar, System.Tuple elementlari esa xossalar. 4. 8 (7) tadan ortiq element yaratish uchun ichma-ich kortejlardan foydalaniladi. Tuple t = new Tuple(18, "Bob"); t.Item1 = 19; // Xato vt.Item1 = 19; var _vt = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); Console.WriteLine(_vt.GetType()); Sanab o'tiluvchi tur Sanab o'tiluvchi tur (enum) – butun sonli qiymatlar uchun nomlangan konstantalar to'plami. Kelishuv bo'yicha int turidagi qiymatlar bilan ishlaydi, lekin konstantalar qiymatini enum e'lonida aniq ko'rsatish mumkin. Qiymatlar aniq ko'rsatilmaganda 0 dan boshlanadi va har bir keyingi maydon bittaga oshirilib ketiladi. Enum odatda Main() metoddan tashqarida yoki alohida fayllarda aniqlanadi.
enum Season
{
Spring,
Summer,
Autumn,
Winter
}
enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}
Do'stlaringiz bilan baham: |