C# Static 类 - 静态 class 不能有非静态成员
C# Static Classes - A static class cannot have non-static members
我正在尝试了解 c# 语言以及为什么您需要对静态 class 中的所有成员使用 static 关键字。是的,我知道 static class 不能实例化,但是为什么成员 默认情况下不是 static 在 static class,因为我们知道静态 class 不能有非静态成员?
例如:
为什么不能这样
public static class StaticClass
{
public static int numberTest = 2;
}
是:
public static class StaticClass2
{
public int numberTest = 2;
}
这是语言设计者的设计决定。当然 static
class 只能有 static
个成员,所以 static
限定符是 冗余 。但是如果你被迫把它放在那里,它会让事情变得更清晰,更不容易出错。当您的 classes 和项目变得更大时,这变得越来越重要。
很可能是出于历史原因。你是对的,一个自动的,隐含的 static
会更符合语言的其他部分。
但是 static 类 是 C# 2.0 中的新增内容,更改必须是非破坏性的。
我正在尝试了解 c# 语言以及为什么您需要对静态 class 中的所有成员使用 static 关键字。是的,我知道 static class 不能实例化,但是为什么成员 默认情况下不是 static 在 static class,因为我们知道静态 class 不能有非静态成员?
例如: 为什么不能这样
public static class StaticClass
{
public static int numberTest = 2;
}
是:
public static class StaticClass2
{
public int numberTest = 2;
}
这是语言设计者的设计决定。当然 static
class 只能有 static
个成员,所以 static
限定符是 冗余 。但是如果你被迫把它放在那里,它会让事情变得更清晰,更不容易出错。当您的 classes 和项目变得更大时,这变得越来越重要。
很可能是出于历史原因。你是对的,一个自动的,隐含的 static
会更符合语言的其他部分。
但是 static 类 是 C# 2.0 中的新增内容,更改必须是非破坏性的。