Saya melihat sesuatu seperti berikut ini di suatu tempat, dan bertanya-tanya apa artinya. Saya tahu mereka getter dan setter, tapi ingin tahu mengapa Tipe string didefinisikan seperti ini. Terima kasih telah membantuku.
public string Type { get; set; }
c#
getter-setter
Maya
sumber
sumber
"Type"
, jenis .NET di antaranya adalahSystem.string
. Tidak ada yang lebih dari itu.Jawaban:
Itu adalah Properti yang Diimplementasikan Otomatis (disingkat Properti Otomatis).
Kompiler akan secara otomatis menghasilkan persamaan dari implementasi sederhana berikut:
sumber
public int b { get { return b * 2; } }
bidang kedua tidak diperlukan. Tapi saya pikir ketika Anda memiliki setter dengan body maka Anda membutuhkan field kedua. Dan yang ini menunjukkan seorang setter dengan tubuh. Meskipun itu sama dengan kalimat satu penanya.=>
sintaks dan tidak ada kata kunci kembali. Meskipun bukan itu yang ada dalam pikiran saya. Saya berpikir bahwa bidang kedua tidak diperlukan, meskipun sejak itu saya menemukan bahwa bidang kedua terkadang diperlukan. Dalam contoh di sini, bidang kedua tidak diperlukan ('cos penyetel default tanpa tubuh akan melakukan ini), tetapi penjawab meletakkannya di (badan penyetel dan bidang kedua), untuk menjelaskan kepada penanya apa baris mereka tanpa bidang kedua sedang dilakukan.Itu adalah properti-otomatis dan itu adalah notasi singkatan untuk ini:
sumber
<Type>k__BackingField
refleksi.Dalam C # 6:
Sekarang dimungkinkan untuk mendeklarasikan properti-otomatis hanya sebagai sebuah field:
Properti Otomatis Hanya-Baca
sumber
Tidak ada bedanya dengan melakukan
sumber
Ini berarti bahwa kompilator mendefinisikan bidang dukungan pada waktu proses. Ini adalah sintaks untuk properti yang diimplementasikan secara otomatis.
Informasi Selengkapnya: Properti yang Diimplementasikan Secara Otomatis
sumber
Ini adalah properti yang didukung secara otomatis, pada dasarnya setara dengan
sumber
Ini disebut properti otomatis.
http://msdn.microsoft.com/en-us/library/bb384054.aspx
Secara fungsional (dan dalam istilah IL yang dikompilasi), mereka sama dengan properti dengan bidang pendukung.
sumber
Saya tahu ini adalah pertanyaan lama tetapi dengan dirilisnya C # 6, Anda sekarang dapat melakukan sesuatu seperti ini untuk properti pribadi.
sumber
Anda juga bisa menggunakan ekspresi lambda
sumber