Może to wyglądać jak abstrakcyjna właściwość lub własność z interfejsu, ale jest daleko od niej. Aby zachęcić programistów do korzystania z właściwości (ponieważ są to najlepsze praktyki z wielu powodów) firma Microsoft zdecydowała się włączyć tę funkcję do języka C# 3, aby umożliwić użytkownikowi łatwiejsze deklarowanie właściwości.
Oto standardowy sposób tworzenia właściwość:
String foo;
public String Foo
{
get { return this.foo }
set { this.foo = value; }
}
Teraz to wymaga sporo pisania, jak i programiści są leniwi do rdzenia czasami jesteśmy kuszeni, aby utworzyć pola publiczne tylko zaoszczędzić trochę czasu .
Teraz z kompilatora C# 3 możemy to zrobić:
public String Foo { get; set; }
Choć wygląda to nieco dziwnie, za pracę, że kompilator robi w Twoim imieniu. Poprzedni kod zostanie skompilowany do tego:
[CompilerGenerated]
private string <Foo>k__BackingField;
public string Foo
{
[CompilerGenerated]
get
{
return this.<Foo>k__BackingField;
}
[CompilerGenerated]
set
{
this.<Foo>k__BackingField = value;
}
}
Więc choć składnia wygląda nieco dziwnie nadal tworząc własność dokładnie tak, jak jesteśmy przyzwyczajeni.
Chciałbym zagłosować za bardziej szczegółowym wyjaśnieniem, ale nie mogę się doczekać dnia. – TheTXI