如何从C#中的接口隐藏已实现属性的set方法?

Gir*_*rdi 0 c# inheritance encapsulation interface

大家问候......

如果我有以下界面:

interface IMyInterface
{
    int property { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以下实施:

class MyClass : IMyInterface
{
// anything
}
Run Code Online (Sandbox Code Playgroud)

如何隐藏set属性的方法MyClass...换句话说,我不希望公开的set方法property,这可能吗?

使用抽象类很容易:

abstract class IMyInterface
{
    int property { get; protected set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,我只可能setproperty实现上述的抽象类的类内...

Ode*_*ded 7

set开头没有界面.你仍然可以实现它private.

你不能"隐藏"它,这是合同的一部分.如果您不希望它成为合同的一部分,请不要定义它.