C ++与C#中的静态变量有什么区别?

静态变量在C#中具有与在C ++中相同或相似的function吗?

编辑:

使用C ++,您可以在许多不同的上下文中使用静态变量 – 例如:1)全局变量,2)本地函数变量,3)类成员 – C#中的类似用法是否与C ++类似?

静态在C ++中有多种含义。

C#中的静态变量基本上只有一个含义:变量作用于一个类型。 在C#中,类型上的静态用于表示类型范围的变量。 方法上的静态是一种类型范围的方法。 Static也可以在类上使用,表示整个类只包含静态方法,属性和字段。

函数范围内的静态变量或非类范围的静态值没有等效。


编辑:

在对编辑的响应中,C#基本上只对类成员使用静态。 C#不支持全局和局部静态函数变量。 另外,正如我上面提到的,你可以标记整个类“static”,这基本上只是让编译器检查类中没有非静态成员。

从MSDN: static关键字:在C ++中,static既可用于声明类级实体,也可用于声明特定于模块的类型。 在C#中,static仅用于声明类级实体。

C#中的静态变量的行为类似于c ++中的静态成员变量。 这超出了c ++中’static’关键字的多重含义,只有其中一个存在于C#的上下文中。 例如,你不能将范围限制为C#中带静态(严格来说是C特性)的文件