【发布时间】:2011-04-04 05:11:08
【问题描述】:
这是 .NET 哲学家的问题:
据我了解,Microsoft 有意识地拒绝在 C# 中使用私有类。他们为什么这样做?他们这样做的理由是什么?
例如,我正在构建一个包含报告工具的大型应用程序。该工具使用了许多仅在报告工具中使用而不在项目的其他部分中使用的业务对象。我想将它们封装起来,仅在报告工具本身中使用。
伟大的决定是在 VS 中为这个工具创建单独的项目,我会这样做,但我很有趣,如果我不能这样做 - 例如我们的架构不够好,我们有大的单一项目。
在“私有类”后面,我指的是一个不能在任何其他命名空间中使用的类,除了它自己的。
我的问题不是——我该如何模拟这个,或者以其他方式做。我只是想知道,为什么不在没有任何父类的情况下将 private 关键字与 class 关键字一起使用。我在想应该有什么原因,我想知道它
【问题讨论】:
-
这是内部的,不是私人的。
-
嘿,我知道什么是内部的,以及公共内部的私有 =) I
m just wondering, why I cant 为命名空间创建私有类 - 也许所有这些都是模拟的,但他们为什么否认这一点? -
@Archeg 如果它是私人的,你希望谁能够看到它?
-
在同一命名空间中创建的其他类。当您使用简单的原则时-对于 VS 中的单个文件夹-单个命名空间-将使用此方法。您可以从同一个文件夹或其中的文件夹中使用此类
-
@Archeg:我认为你认为命名空间比它们更重要。它们纯粹是代码编写者的命名上下文。即使在运行时,它们也没有任何用途(所有元数据和引用都以全名表示)。请记住,一个程序集可以包含许多命名空间,并且一个命名空间可以跨多个程序集拆分。
标签: c# language-features