1.4§.C# da indeksatorning sinf va strukturada ishlatilishi.
Ba'zi hollarda, xususiyat getva kiruvchi usullar setqo'shimcha mantiqni kiritmasdan oddiygina qiymatni belgilaydi yoki qo'shimcha maydondan qiymatni oladi. Avtomatik ravishda amalga oshirilgan xususiyatlar yordamida siz kodingizni soddalashtirishingiz mumkin, C # kompilyatori sizga shaffof ravishda qo'shimcha maydonni taqdim etadi.
Agar mulkda getva unga kirish usullari mavjud bo'lsa set, ularning ikkalasi ham avtomatik ravishda amalga oshirilishi kerak. Avtomatik xususiyat kalit so'zlar yordamida va amalga oshirishni belgilamasdan aniqlanadi . Quyidagi misol avvalgisiga o'xshaydi, faqat bundan mustasno va avtomatik ravishda amalga oshiriladigan xususiyatlar. Shuni esda tutingki, ushbu misol parametrsiz konstruktorni olib tashlaydi, bu esa parametrsiz konstruktor va ob'ektni boshlovchi deb nomlash orqali ob'ektlarni ishga tushirishga imkon beradi . getset NamePrice SaleItem
C # da ko‘rinishi
using System;
public class SaleItem
{
public string Name
{ get; set; }
public decimal Price
{ get; set; }
}
class Program
{
static void Main(string[] args)
{
var item = new SaleItem{ Name = "Shoes", Price = 19.95m };
Console.WriteLine($"{item.Name}: sells for {item.Price:C2}");
}
}
// The example displays output like the following:
// Shoes: sells for $19.95
Ishga va o'rnatilgan bir ifodalar mulk yoki dizinleyici deyiladi usullari erişimci . Odatiy bo'lib, ular tegishli bo'lgan xususiyat yoki indeksator bilan bir xil ko'rinish yoki kirish darajalariga ega. Qo'shimcha ma'lumot olish uchun Kirish darajalari . Biroq, ba'zi hollarda ushbu usullarga kirish darajasini cheklash tavsiya etiladi. Odatda, bu holda, usul uchun kirish darajasi cheklangan , usul esa ochiq qoladi. Misol: setget
C #Nusxalash
private string _name = "Hello";
public string Name
{
get
{
return _name;
}
protected set
{
_name = value;
}
}
Ushbu misolda xususiyat Nameaccessor usullarini getva belgilaydi set. Accessor xususiyatning o'zi kirish darajasini oladi (bu holda ) va himoyalangan kirish modifikatori ushbu usulga aniq qo'llaniladi . getpublicset
Do'stlaringiz bilan baham: |