我不知道爲什麼在C#中不允許使用僅{組}財產自動生成屬性類類型,如:爲什麼屬性只能包含C#中的接口類型的setter?
class Person {
public string Name { set; } // Compile-time error
}
但是,它允許在接口類型:
interface IPerson {
string Name {set;} //Allowed
}
我讀過類似的問題here,這是非常罕見的做法 - 我的理解,但我想知道爲什麼CLR甚至允許這樣做?
更重要的問題(我相信Eric Lippert會希望你問的)是,爲什麼不應該編譯器允許你這樣做?你有義務提出強烈的反對意見,而不是要求支持它。在某些情況下,我希望通過接口強制執行單向數據流是非常合理的。 –
該財產的合法實施是它無能爲力。將價值存儲到財產將被忽略。爲什麼編譯器應該支持什麼是有效的死代碼? –