c# - 初始分配的变量

标签 c# variables variable-assignment

初始分配了以下两类变量:

  • 类实例的实例变量。

  • 初始分配的结构变量的实例变量。

现在初始分配的结构变量是什么意思?

我们不是在谈论局部变量,对吧?所以我们讨论的是函数成员定义中使用的字段变量(在这两个类别中)?

澄清这一点将不胜感激。提前致谢!

最佳答案

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

qu 都不是初始分配的;它们不是任何类别的字段。由于 u 最初未分配,因此 u.j 也不是。

现在明白了吗?

关于c# - 初始分配的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16023890/

相关文章:

javascript - 分配字符串的变量值

c# - 如何在 C# 中使用三重 DES 执行 ISO 9797-1 MAC?

c# - MongoDB 自定义序列化程序以避免 _t 被添加到集合中,抛出 ReadEndArray 错误?

C# - 俄罗斯方 block 克隆 - 无法阻止正确响应箭头键组合

c - 在 linux 平台上用 c 语言声明 bool 变量

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

c++ - 将类 vector 的元素设置为等于类时的行为

c++ - 在 vector 中使用具有 const 数据成员的类

c# - 在请求之间创建一个托管在 IIS7 中的 WCF 服务吗?

java - 他们可以将Javascript变量分配或获取到java变量吗?