在c#中声明私有静态类的任何用法
本文关键字:静态类 任何 用法 声明 | 更新日期: 2023-09-27 18:04:15
将静态类声明为私有是否有用?下面是代码:
static class DerivedClass
{
private static string GetVal()
{
return "Hello";
}
}
您提供的示例代码实际上演示了一个内部类,而不是一个私有类。这完全没问题,而且一直都是这样做的。这意味着类的方法可以从同一模块内的其他类中使用,但不能从外部使用。
如果你的意思是声明静态类的私有成员,当然可以。
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在一些罕见的情况下是有意义的,只是在我看来。我以前在嵌套类中使用过它,只是为了将某些东西组合在一起,使我的代码更漂亮/更易读。然而,我发现,如果我创建嵌套类,这通常意味着我需要重新设计我的代码,并将其中一些代码拉到单独的文件和单独的类中。每个文件只能使用一个类