c# – 得到;不正常
作者:互联网
对于学校作业,我应该创建一个可以按小时,分钟和秒存储时间的Time类.一切都工作正常,但只有声明得到时,属性总是返回0;并设定;
private int seconds, minutes, hours;
public int Seconds { get; set; }
public int Minutes { get; set; }
public int Hours { get; set; }
如果我在getter中定义要返回的内容,它可以正常工作:
private int seconds, minutes, hours;
public int Seconds { get { return this.seconds; } set { this.seconds = value; } }
public int Minutes { get { return this.minutes; } set { this.minutes = value; } }
public int Hours { get { return this.hours; } set { this.hours = value; } }
我真的不介意编写这些额外的代码,但根据我的理解,第一段代码应该可以正常工作.这里发生了什么?
解决方法:
你展示的代码还不够,但它确实暗示你不理解auto-properties是如何工作的.它们不会与你的支持领域(秒,分钟,小时)神奇地绑定 – 它们会自己创建.
因此,更改支持字段的唯一方法是使用setter – Seconds = 42;.我假设你使用秒= 42;相反,这不可能奏效;您正在更改与Seconds属性无关的完全独立的字段.
标签:c,accessor 来源: https://codeday.me/bug/20190717/1488991.html