C# 有没有可能有一个;var";作为全局变量

C# 有没有可能有一个;var";作为全局变量,c#,C#,我注意到c#中还有其他关于全局变量的线程。例如整数、字符串等 public static int; 但是我需要使用另一个线程没有提到的“var”,并且 public static var; 似乎不起作用 所以我想问的是,在c#?中,是否有可能将“var”作为全局变量不,因为var本身不是一种类型,它只是以赋值右边的任何表达式的形式出现: var num = 1; 同: int num = 1; 声明作用域在方法之外的变量时,需要使用完整类型指示符: public static int n

我注意到c#中还有其他关于全局变量的线程。例如整数、字符串等

public static int;
但是我需要使用另一个线程没有提到的“var”,并且

public static var;
似乎不起作用


所以我想问的是,在c#?

中,是否有可能将“var”作为全局变量不,因为var本身不是一种类型,它只是以赋值右边的任何表达式的形式出现:

var num = 1;
同:

int num = 1;
声明作用域在方法之外的变量时,需要使用完整类型指示符:

public static int num = 1;

etc(第26.1节)内容如下:

[`var]是一个隐式类型的局部变量声明

它更进一步:

隐式类型局部变量中的局部变量声明符 声明受以下限制:

  • 声明器必须包含初始值设定项
  • 初始值设定项必须是表达式
  • 初始值设定项表达式的编译时类型不能为 必须是空类型
  • 局部变量声明不能包括 多个声明器
  • 初始值设定项不能引用声明的变量本身
所以不,你不能这样做。此外,我建议不要考虑全局变量


该语言不支持全局变量。您可以在
公共静态
字段中找到替代方法,但这将泄漏对象状态并破坏封装。

可能重复:您熟悉静态只读变量或属性或受保护的静态声明吗。。?我觉得有一个
CLOSE
带着这个问题来到这里。var是一个C#关键字,不能用它作为名字。全局变量=坏主意
var
不是一种类型。变量的类型是在编译时从声明中推断出来的,这就是为什么您必须立即给它赋值,并且不能使用它来声明类成员。“当声明作用域在方法之外的变量时,您需要使用完整的类型指示符”…你能解释一下为什么会这样吗???你能给我们一个关于为什么在类中避开全局变量的进一步的阅读吗?我是一个有4年经验的开发人员,我总是使用它,我知道我不应该这样做,但大多数时候我想不出什么不同的东西。我想是时候从根本上改变习惯和理论了。@BarryGuvenkaya这取决于你对全局变量的理解。在这个问题的上下文中,我认为OP想使用
var
关键字作为他的变量。当我说“全球”时,我指的是班级的公共成员。遵循封装原则,类的成员应该是私有的,这样就不会泄露类的实现细节和状态。如果您想将类用作数据传输对象,或者只想获取其当前状态,则始终可以使用公共属性。这有意义吗?这就清楚了,先生,谢谢。快乐编码!
public static int Num {get;set;}