0

将静态类声明为私有有什么用吗?下面是代码:

static class DerivedClass
{
    private static string GetVal()
    {
        return "Hello";
    }
}
4

2 回答 2

2

您提供的示例代码实际上说明了一个内部类,而不是私有类。这很好,并且一直在完成。这意味着该类的方法可从同一模块内的其他类中使用,但不能在外部使用。

如果您的意思是声明静态类的私有成员,那么肯定有。

static class DerivedClass
{
    public static string GetVal()
    {
        return GetValInternal();
    }

    private static string GetValInternal()
    {
        return "Hello";
    }
}

如果您的意思是声明私有静态嵌套类(因为根据文档,只有嵌套类可以是私有的),那么您可以这样做,但可能没有理由这样做。

class SomeClass
{
    private static class DerivedClass
    {
        public static string GetVal()
        {
            return "Hello";
        }
    }
}

相当于

class SomeClass
{
    private static string GetVal()
    {
        return "Hello";
    }
}
于 2013-03-17T18:04:41.047 回答
1

默认情况下,没有像您的示例中那样的访问修饰符的类是internal,而不是private。请参阅此参考:http: //msdn.microsoft.com/en-us/library/ms173121.aspx。这意味着您可以从库/项目中的任何位置访问此类。这是有道理的,因为它允许您在内部使用该类,而不必将其暴露给外部世界。

但是,仅在我看来,在极少数情况下明确将其声明为私有是有意义的。我之前将它用于嵌套类,只是为了将某些东西组合在一起并使我的代码更漂亮/更具可读性。但是我发现,如果我正在创建嵌套类,这通常意味着我需要重新设计我的代码并将其中的一些代码放入单独的文件和单独的类中。而是尝试坚持每个文件一个类。

于 2013-03-17T18:29:22.363 回答