与内部接口 属性

interface with internal property

我正在创建一个界面。让我们说以下

internal interface MyInterface
{
    string Prop { get; }
}

这是一个内部接口。我打算在项目中使用它,不想公开 Prop publicly。但是,当我尝试将此接口实现为 class 时,我不得不将其设为 Prop 属性 public。我不明白为什么我需要做这个 属性 public 当接口本身是内部的并且只能在内部使用时。

因为接口本身只是对象的 public 面向功能的契约。任何非public的东西都不真正属于那里,而是可以继续执行类型。

然而,这基本上不是问题。如果 typeinternal,则该类型的任何属性在该范围之外都不可见。因为他们怎么可能呢?类型本身在该范围之外是未知的。 (任何不知道 MyInterface 是什么的代码肯定不会知道 MyInterface.Prop 是什么。)

这些属性是 public,因为使用代码可以看到它们。但这只对首先可以使用该类型的代码很重要,对于那个程序集来说只有 internal