Jeffrey Richter kitabında (C# 4.0, CLR yoluyla C# 4.0, sayfa 257) kodumu buldum ve neden böyle çalıştığını yanlış anladım.Başlamada yanlış anlama olsun ve ayarlayın: Jeffrey Richter, CLR yoluyla C#
public sealed class Classroom
{
private List<String> m_students = new List<String>();
public List<String> Students { get { return m_students; } }
public Classroom() { }
}
class Program
{
static void Main(string[] args)
{
Classroom classroom = new Classroom {
Students = { "Jeff", "Kristin" }
};
foreach (var student in classroom.Students)
Console.WriteLine(student);
}
}
Sonuç:
Jeff
Kristin
Gördüğünüz gibi, biz ancak 'Main' işlevinde sadece getter vardır 'Öğrenci' adlı bir erişimci özelliği, (! Ayarlayıcı değil) var,
hep düşündümClassroom classroom = new Classroom {
Students = { "Jeff", "Kristin" }
};
, işte sol tarafında 'bir değişken: biz 'Sınıfın' değişkeni başlatmak istiyoruz, biz 'Sınıf' türündeki' Öğrenci alanını başlatmanın ifadesi (int i = 1), sonra derleyici ayarlayıcı işlevine ve “sağ taraftaki” (int x = i + 2) ise getter işlevine erişmelidir.
Neden Jeffrey'nin kodunda bu kadar ilginç bir davranış var (sadece benim için olabilir mi?
Hızlı yanıt yanıtı düzeltmeleri düzenlemenin neresinde? – Michael
Not: Öğrenciler = yeni Liste() 'bir yüz ifadesi verirken, bunun karşısında, başlangıçta bu diğer durumda beklenebilir? –
Bu bilgi, "C# gününün gerçeğini düzenleme" kotamu yerine getirdi. – Chris