C# ';这';对象的所有字段都指定给之前,无法使用该对象
在构造函数中,天出现问题: 在将“this”对象的所有字段指定给之前,不能使用该对象 但在相同的情况下,月在构造函数中也有效。为什么?C# ';这';对象的所有字段都指定给之前,无法使用该对象,c#,constructor,properties,getter-setter,C#,Constructor,Properties,Getter Setter,在构造函数中,天出现问题: 在将“this”对象的所有字段指定给之前,不能使用该对象 但在相同的情况下,月在构造函数中也有效。为什么? struct Date { private byte day; public byte Day { get { return day; } set { if (value > 0 && value < 32) day =
struct Date
{
private byte day;
public byte Day
{
get { return day; }
set {
if (value > 0 && value < 32)
day = value;
else
day = 0;
}
}
private byte month;
public byte Month
{
get { return month; }
set
{
if (value > 0 && value < 13)
month = value;
else
month = 0;
}
}
public Date(byte day, byte month)
{
Day = day;
Month = month;
}
}
结构日期
{
私人字节日;
公众字节日
{
获取{返回日;}
设置{
如果(值>0&&值<32)
天=价值;
其他的
日=0;
}
}
专用字节月;
公共字节月
{
获取{返回月份;}
设置
{
如果(值>0&&值<13)
月份=价值;
其他的
月份=0;
}
}
公开日期(字节天,字节月)
{
天=天;
月=月;
}
}
如果没有,编译器在出现第一个错误后刚刚停止。如果您注释掉
Day=Day
,您将在Month=Month
上看到相同的错误
(使用dotnetfiddle/.net4.7.2进行测试,我想其他编译器可能会有所不同。)谢谢您的帮助。
我找到了解决办法。
我试图将日期的struct更改为class。成功了
class Date
{
}
this.day=天;本月=月代码>。您正在设置属性,而不是备份字段。该错误适用于Day=Day代码>(在初始化结构字段之前),不允许使用此
。不允许,请尝试删除导致错误的行。