C++和C#中静态变量的区别是什么?

8

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

编辑:

在C++中,您可以在许多不同的上下文中使用静态变量,如:1)全局变量,2)局部函数变量,3)类成员。在C#中类似用法是否表现出与C++类似的行为?

3个回答

8

在C++中,static有多种含义。

在C#中,static变量基本上只有一种含义:类型范围内的变量。在C#中,静态类型表示类型范围内的变量。方法上的静态是类型范围内的方法。还可以在类上使用静态来表示整个类仅由静态方法、属性和字段组成。

在函数作用域或非类范围的静态值中,没有相应的静态变量。


编辑:

针对您的编辑,C#基本上仅将static用于类成员。全局和局部静态函数变量在C#中不受支持。此外,如上所述,您可以将整个类标记为“静态”,这基本上只是让编译器检查类中是否有非静态成员。


1

来自MSDN: 静态关键字:在C ++中,静态可以用于声明类级实体和声明特定于模块的类型。在C#中,静态仅用于声明类级实体。


0
在C#中,静态变量的行为类似于c++中的静态成员变量。也就是说,在c++中'static'关键字的多个含义中,只有其中一个存在于C#上下文中。例如,你不能使用static(这是C语言特有的功能)来限制作用域到一个文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接