在c#中声明私有静态类的任何用法

本文关键字:静态类 任何 用法 声明 | 更新日期: 2023-09-27 18:04:15

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

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

在c#中声明私有静态类的任何用法

您提供的示例代码实际上演示了一个内部类,而不是一个私有类。这完全没问题,而且一直都是这样做的。这意味着类的方法可以从同一模块内的其他类中使用,但不能从外部使用。

如果你的意思是声明静态类的私有成员,当然可以。

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";
    }
}

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

显式声明为private在一些罕见的情况下是有意义的,只是在我看来。我以前在嵌套类中使用过它,只是为了将某些东西组合在一起,使我的代码更漂亮/更易读。然而,我发现,如果我创建嵌套类,这通常意味着我需要重新设计我的代码,并将其中一些代码拉到单独的文件和单独的类中。每个文件只能使用一个类