几天前我发布了一个类似的问题,但它更适合于任何*.designer.cs文件。这个问题是面向类内全局变量的声明和初始化的。据我所知,将所有全局变量放在类定义的开头,然后按任意顺序(我更喜欢getter和setter,然后是构造函数,然后是事件,然后是misc函数),这几乎是常见的做法(除了*.designer.cs文件)。好吧,我已经看到了,并且在声明中设置了一个全局变量的地方,我自己也做过。
我不是指:
ClassA clA = new ClassA();
我指的是:
private int nViewMode = (int)Constants.ViewMode.Default;
现在,我听到人们说,在某些层面上我可以同意,这些变量的初始化,那些不需要
new
语句声明变量时,应在构造函数或初始化函数中完成。但是,当他们说,他们可能意味着之前的陈述是好的,但不是以下:
错误的方式
private int nTotal = 100;
private int nCount = 10;
private int nDifference = nTotal - nCount;
可能的正确路线
private int nTotal = 100;
private int nCount = 10;
private int nDifference = 0;
void ClassConstructor()
{
nDifference = nTotal - nCount;
}
我的问题是:
在这种情况下,最常见/最标准的做法是什么?
两者的优缺点是什么?
这些问题只与某些语言相关,而与其他语言无关吗?
我在打字的时候最后想到的问题是,这就是原因。在VisualStudio 2008中,我似乎可以在全局变量声明上放置断点,而我不认为我可以在我在大学中编写C++时使用。此外,我相信在大学里,你不能使用一个变量,它是在当前变量之前被声明的,但又是C++中的变量。所以我不确定这些问题是否只适用于MSV产品(我们在大学使用了Borland)、更新的编译器,或者其他什么。如果有人有任何见解,我将不胜感激。谢谢。