Gar*_*ann 3 c# variables variable-assignment
最初分配以下两类变量:
类实例的实例变量.
最初分配的结构变量的实例变量.
现在最初分配的结构变量意味着什么?
我们不是在谈论局部变量,对吗?那么我们在谈论在函数成员定义中使用的字段变量(在这两个类别中)?
澄清这一点将非常感激.并提前感谢!
最初分配以下两类变量:(1)类实例的实例变量和(2)最初分配的结构变量的实例变量."最初分配的结构变量"是什么意思?
它表示最初分配的struct类型变量.
跟着.
class C 
{
    public int i;
}
...
C c = new C();
Console.WriteLine(c.i);
Run Code Online (Sandbox Code Playgroud)
c.i是类的实例变量,因此最初分配.
struct S 
{
    public int j;
}
class D 
{
    public S t;
}
...
D d = new D();
Console.WriteLine(d.t.j);
Run Code Online (Sandbox Code Playgroud)
d.t是类的实例变量,因此最初分配.d.t.j是结构的实例变量S,并且最初分配d.t了类型的变量S,因此d.t.j也是最初分配的.
也就是说,如果保存struct的值的变量本身最初被赋值,则最初会分配struct的字段.
相比之下:
void M()
{
    int q;
    Console.WriteLine(q); // Error
    S u;
    Console.WriteLine(u.j); // Error
Run Code Online (Sandbox Code Playgroud)
既没有q也没有u最初分配; 他们不是任何阶级的领域.由于u最初未分配,u.j因此也不是.
现在有道理吗?
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           486 次  |  
        
|   最近记录:  |