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

时间:2010-02-22 03:48:28

标签: c# c++ variables instantiation

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

编辑:

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

3 个答案:

答案 0 :(得分:6)

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

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

函数作用域内的静态变量或非类作用域静态值没有等效。


编辑:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

C#中的静态变量的行为类似于c ++中的静态成员变量。这是c ++中'static'关键字的多重含义,只有其中一个存在于C#的上下文中。例如。您不能将范围限制为C#

中具有静态(严格来说是C功能)的文件