[英]By design, why does the C# compiler allows any float or double values to be divided by zero?
[英]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.