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

C# – 为什么构造函数不写入初始值?,第1张

概述为什么这段代码输出的值不是50? class Program{ static void Main(string[] args) { var myClass = new TestConstructor() { MyInt = 50 }; }}class TestConstructor{ public int MyInt { get; set; 为什么这段代码输出的值不是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# – 为什么构造函数写入初始值?全部内容,希望文章能够帮你解决C# – 为什么构造函数不写入初始值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1226328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存