gpt4 book ai didi

C# - 为什么构造函数不写入初始化值?

转载 作者:行者123 更新时间:2023-11-30 13:07:47 27 4
gpt4 key购买 nike

为什么这段代码没有输出值50?

class Program
{
static void Main(string[] args)
{
var myClass = new TestConstructor() { MyInt = 50 };
}
}

class TestConstructor
{
public int MyInt { get; set; }

public TestConstructor()
{
Console.WriteLine(this.MyInt);
Console.Read();
}
}

最佳答案

这段代码:

 var myClass = new TestConstructor() { MyInt = 50 };

有效地转化为:

var tmp = new TestConstructor();
tmp.MyInt = 50;
var myClass = tmp;

在执行构造函数之前,您希望如何设置属性?

(在这里使用临时变量在这种情况下并不重要,但在其他情况下可能很重要:

var myClass = new TestConstructor { MyInt = 50 };
myClass = new TestConstructor { MyInt = myClass.MyInt + 2 };

在第二行中,重要的是 myClass.MyInt 仍然引用第一个 对象,而不是新创建的对象。)

关于C# - 为什么构造函数不写入初始化值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com