接口属性上的内部修饰符

Mat*_*ero 2 .net c# properties interface

我有以下界面:

public interface IAgable {
    int Age { get; internal set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要Age属性,对于引用此接口的外部程序集是只读的,但我也希望Age在接口的相同程序集上设置属性,因此internal修饰符.

但是,这似乎引发了编译错误,因为可访问性修饰符可能不会在接口中的访问器上使用.

我希望从一个接口调用该属性,我希望能够在内部级别设置它.同时,如果从外部项目引用,我希望它是只读的.

这可能吗?

Ser*_*rvy 7

有一个提供a get和a 的内部接口set,以及一个只提供a的公共接口get.让公共接口扩展内部接口:

public interface IAgable
{
    int Age { get; }
}

internal interface IAgableInternal : IAgable
{
    int Age { set; }
}
Run Code Online (Sandbox Code Playgroud)

  • 不应该是`内部接口IAgableInternal:IAgable`吗? (2认同)