gpt4 book ai didi

c# - 为什么 C# 编译器不允许接口(interface)中的私有(private)属性 setter ?

转载 作者:IT王子 更新时间:2023-10-29 04:40:46 24 4
gpt4 key购买 nike

在某些情况下,例如 MVVM View 模型,我有时需要有私有(private) setter ,因为 View 模型公开了一个只能在内部修改的状态。

那么在接口(interface)上需要私有(private) setter 是错误的吗? (我的意思不是特别是在描述的场景中)如果不是,为什么 C# 编译器不允许它?

谢谢。

最佳答案

根据定义,接口(interface)是供其他代码使用的契约,而不是供私有(private)成员使用的契约。但是,您可以在接口(interface)中指定只读属性并在具体类中实现私有(private) setter :

public interface IFoo
{
string MyReadonlyString { get; }
}

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

关于c# - 为什么 C# 编译器不允许接口(interface)中的私有(private)属性 setter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com