初始分配了以下两类变量:
类实例的实例变量。
初始分配的结构变量的实例变量。
现在初始分配的结构变量是什么意思?
我们不是在谈论局部变量,对吧?所以我们讨论的是函数成员定义中使用的字段变量(在这两个类别中)?
澄清这一点将不胜感激。提前致谢!
最佳答案
The following two categories of variables are initially assigned: (1) Instance variables of class instances and (2) Instance variables of initially assigned struct variables. What does "initially assigned struct variables" mean?
它表示一个初始分配的结构类型变量。
跟随。
class C
{
public int i;
}
...
C c = new C();
Console.WriteLine(c.i);
c.i
是一个类的实例变量,所以它是初始赋值。
struct S
{
public int j;
}
class D
{
public S t;
}
...
D d = new D();
Console.WriteLine(d.t.j);
d.t
是一个类的实例变量,所以它是初始赋值的。 d.t.j
是结构体S
的实例变量,S
类型的变量d.t
是初始赋值的,因此d.t.j
也是初始分配的。
也就是说,如果保存结构值的变量是自身初始分配的,则结构的字段将被初始分配。
对比:
void M()
{
int q;
Console.WriteLine(q); // Error
S u;
Console.WriteLine(u.j); // Error
q
和 u
都不是初始分配的;它们不是任何类别的字段。由于 u
最初未分配,因此 u.j
也不是。
现在明白了吗?
关于c# - 初始分配的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16023890/