我知道我可以写:
protected static
在我的 C# 类中(在我的例子中,一个 aspx.cs)。也 :
private static
这是什么意思?静态无处不在。为什么受保护/私有?
如果您将变量声明为 Private,则您无法在当前类之外访问它,如果声明为 Protected,则只有派生类才能访问该变量。在您的示例中,私有和受保护的基本含义是没有改变,所以不管你如何声明它是静态的还是简单的......
class Test
{
protected static int var1;
private static int var2;
}
class MainProgram : Test
{
private static int test;
static void Main(string[] args)
{
Test.var1 = 2;
Test.var2 = 5; //ERROR :: We are not able to access var2 because it is private
}
}
在上面的代码中,您可以看到我们是否希望静态变量只能在当前类中访问,那么您需要将其设为 Private。
private
类型或成员只能被同一类或结构中的代码访问。
protected
类型或成员只能由同一类或结构中的代码或派生类中的代码访问。
静态修饰符
静态方法在没有实例引用的情况下被调用。
static
并不意味着它无处不在。您仍然需要protected
/private
来定义可见性。
如果您只想通过某些类访问变量,例如在使用多态性和继承时,请使用 protected。公共使其始终在范围内可见,而私有则非常明显。
一种用途是您可以创建私有静态字段,并使用公共静态方法/属性公开(应用一些自定义业务逻辑,如单例等)
静态是一个修饰符。保护和私有是访问修饰符。访问修饰符指定变量的范围。当我们希望字段或方法为单例时使用静态修饰符,因此我们不必通过创建对象来访问它们,而是可以直接通过类名调用它们