Jadi seperti yang saya pahami itu { get; set; }
adalah "properti otomatis" yang sama seperti @ Klaus dan @Brandon katakan adalah singkatan untuk menulis properti dengan "bidang dukungan." Jadi dalam hal ini:
public class Genre
{
private string name; // This is the backing field
public string Name // This is your property
{
get => name;
set => name = value;
}
}
Namun jika Anda seperti saya - sekitar satu jam yang lalu - Anda tidak benar-benar memahami apa properti dan pengakses itu, dan Anda tidak memiliki pemahaman terbaik tentang beberapa terminologi dasar. MSDN adalah alat yang hebat untuk mempelajari hal-hal seperti ini, tetapi tidak selalu mudah dipahami untuk pemula. Jadi saya akan mencoba menjelaskan ini lebih mendalam di sini.
get
dan set
yang accesor , yang berarti mereka dapat akses data dan info di swasta bidang (biasanya dari bidang dukungan ) dan biasanya melakukannya dari publik properti (seperti yang Anda lihat dalam contoh di atas).
Tidak dapat disangkal bahwa pernyataan di atas cukup membingungkan, jadi mari kita masuk ke beberapa contoh. Katakanlah kode ini mengacu pada genre musik. Jadi di dalam Genre kelas, kita akan menginginkan genre musik yang berbeda. Katakanlah kita ingin memiliki 3 genre: Hip Hop, Rock, dan Country. Untuk melakukan ini kita akan menggunakan nama Kelas untuk membuat instance baru dari kelas itu.
Genre g1 = new Genre(); //Here we're creating a new instance of the class "Genre"
//called g1. We'll create as many as we need (3)
Genre g2 = new Genre();
Genre g3 = new Genre();
//Note the () following new Genre. I believe that's essential since we're creating a
//new instance of a class (Like I said, I'm a beginner so I can't tell you exactly why
//it's there but I do know it's essential)
Sekarang kita telah menciptakan contoh dari kelas Genre kita dapat mengatur nama bergenre menggunakan 'Nama' properti itu cara set up di atas.
public string Name //Again, this is the 'Name' property
{ get; set; } //And this is the shorthand version the process we're doing right now
Kita dapat mengatur nama 'g1' ke Hip Hop dengan menulis yang berikut ini
g1.Name = "Hip Hop";
Apa yang terjadi di sini agak rumit. Seperti yang saya katakan sebelumnya, get
dan set
akses informasi dari bidang pribadi yang Anda tidak akan dapat mengakses. get
hanya dapat membaca informasi dari bidang pribadi itu dan mengembalikannya. set
hanya dapat menulis informasi di bidang pribadi itu. Tetapi dengan memiliki properti dengan keduanya get
dan set
kami dapat melakukan kedua fungsi tersebut. Dan dengan menulis g1.Name = "Hip Hop";
kami secara khusus menggunakan set
fungsi dari properti Nama kami
set
menggunakan variabel implisit yang disebut value
. Pada dasarnya apa artinya ini setiap kali Anda melihat "nilai" di set
dalamnya, itu merujuk ke variabel; variabel "nilai". Ketika kita menulis, g1.Name =
kita menggunakan =
untuk meneruskan value
variabel yang dalam hal ini adalah "Hip Hop"
. Jadi pada dasarnya Anda bisa memikirkannya seperti ini:
public class g1 //We've created an instance of the Genre Class called "g1"
{
private string name;
public string Name
{
get => name;
set => name = "Hip Hop"; //instead of 'value', "Hip Hop" is written because
//'value' in 'g1' was set to "Hip Hop" by previously
//writing 'g1.Name = "Hip Hop"'
}
}
Penting untuk dicatat bahwa contoh di atas sebenarnya tidak ditulis dalam kode. Ini lebih merupakan kode hipotetis yang mewakili apa yang terjadi di latar belakang.
Jadi sekarang kita telah menetapkan Nama g1 dari Genre , saya yakin kita bisa mendapatkan namanya dengan menulis
console.WriteLine (g1.Name); //This uses the 'get' function from our 'Name' Property
//and returns the field 'name' which we just set to
//"Hip Hop"
dan jika kita menjalankan ini kita akan masuk "Hip Hop"
ke konsol kita.
Jadi untuk tujuan penjelasan ini saya akan melengkapi contoh dengan output juga
using System;
public class Genre
{
public string Name { get; set; }
}
public class MainClass
{
public static void Main()
{
Genre g1 = new Genre();
Genre g2 = new Genre();
Genre g3 = new Genre();
g1.Name = "Hip Hop";
g2.Name = "Rock";
g3.Name = "Country";
Console.WriteLine ("Genres: {0}, {1}, {2}", g1.Name, g2.Name, g3.Name);
}
}
Keluaran:
"Genres: Hip Hop, Rock, Country"