编程语言
首页 > 编程语言> > c# – 得到;不正常

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