5

我不能在另一个类中将其声明为私有,因为我有几个使用它的类。我也不希望它是内部的,否则它将暴露给同一程序集中的其他类。我希望它只能被同一文件中的类访问。在 C# 中可能吗?

4

1 回答 1

13

C# 语言中很少有在“源文件”级别完成的。

您最接近的方法是创建一个顶级类并有几个嵌套类:

class Foo
{
    internal class A
    {
        private Shared shared = new Shared();
    }

    internal class B
    {
        private Shared shared = new Shared();
    }

    private class Shared
    {
    }
}

老实说,这不是一个非常令人愉快的解决方案。如果一个类需要对许多其他类可见,我通常更喜欢将其设置为内部类,或者将这些类提取到另一个程序集,或者使用共享类对同一程序集中的其他类可见t真的需要知道它。

于 2013-02-18T06:43:33.407 回答