与内部接口 属性
interface with internal property
我正在创建一个界面。让我们说以下
internal interface MyInterface
{
string Prop { get; }
}
这是一个内部接口。我打算在项目中使用它,不想公开 Prop
publicly。但是,当我尝试将此接口实现为 class 时,我不得不将其设为 Prop
属性 public。我不明白为什么我需要做这个 属性 public 当接口本身是内部的并且只能在内部使用时。
因为接口本身只是对象的 public 面向功能的契约。任何非public的东西都不真正属于那里,而是可以继续执行类型。
然而,这基本上不是问题。如果 type 是 internal
,则该类型的任何属性在该范围之外都不可见。因为他们怎么可能呢?类型本身在该范围之外是未知的。 (任何不知道 MyInterface
是什么的代码肯定不会知道 MyInterface.Prop
是什么。)
这些属性是 public
,因为使用代码可以看到它们。但这只对首先可以使用该类型的代码很重要,对于那个程序集来说只有 internal
。
我正在创建一个界面。让我们说以下
internal interface MyInterface
{
string Prop { get; }
}
这是一个内部接口。我打算在项目中使用它,不想公开 Prop
publicly。但是,当我尝试将此接口实现为 class 时,我不得不将其设为 Prop
属性 public。我不明白为什么我需要做这个 属性 public 当接口本身是内部的并且只能在内部使用时。
因为接口本身只是对象的 public 面向功能的契约。任何非public的东西都不真正属于那里,而是可以继续执行类型。
然而,这基本上不是问题。如果 type 是 internal
,则该类型的任何属性在该范围之外都不可见。因为他们怎么可能呢?类型本身在该范围之外是未知的。 (任何不知道 MyInterface
是什么的代码肯定不会知道 MyInterface.Prop
是什么。)
这些属性是 public
,因为使用代码可以看到它们。但这只对首先可以使用该类型的代码很重要,对于那个程序集来说只有 internal
。