可能重复:
将DateTime属性的默认值设置为System.ComponentModel内的DateTime.Now默认值Attrbute
我创建一个像日历一样的控件,我希望用户设置他们想要查看的年份.但如果他们不这样做,SelectedYear的财产必须是实际的年份.
我尝试像这样设置此默认值:
[DefaultValue(DateTime.Today.Year)]
public int SelectedYear{
get{
return _selYear;
}
set{
_selYear = value;
UpdateCalendar();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
Run Code Online (Sandbox Code Playgroud)
该Year物业DateTime是一个计算值,但你试图把它嵌入到这是存储在二进制一个不变的值的属性.这两个概念不兼容.
你想在这里做的是有一个标记,注意该值尚未设置,并Year在这种情况下返回当前值.这是一个使用可空的好地方
int? _selYear;
public int SelectedYear {
get { return _selYear ?? DateTime.Today.Year; }
set {
_selYear = value;
UpdateCalendar();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33435 次 |
| 最近记录: |