簡體   English   中英

為什么C#編譯器不允許接口中的私有屬性設置器?

[英]Why C# compiler does not allows private property setters in interfaces?

在某些情況下,比如MVVM視圖模型,我有時需要私有setter,因為視圖模型公開了一個只能在內部修改的狀態。

那么在接口上需要私有的setter是錯誤的嗎? (我的意思不是特別在所描述的場景中)如果沒有,為什么C#編譯器不允許它?

謝謝。

根據定義,接口是其他代碼使用的合同,而不是私有成員的合同。 但是,您可以在接口中指定只讀屬性,並在具體類中實現私有setter:

public interface IFoo
{
    string MyReadonlyString { get; }
} 

public class FooImplementation : IFoo
{
    public string MyReadonlyString { get; private set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM