Zac*_*ott 102 c# default-parameters
如果DateTime是一个对象,并且默认的C#参数只能被赋予编译时常量,那么如何为DateTime等对象提供默认值?
我正在尝试使用构造函数初始化POCO中的值,使用带有默认值的命名参数.
Bri*_*ndy 186
DateTime不能用作常量,但你可以使它成为可以为空的类型(DateTime?).
给出DateTime?一个默认值null,如果它设置为null函数的开头,那么你可以将它初始化为你想要的任何值.
static void test(DateTime? dt = null)
{
if (dt == null)
{
dt = new DateTime(1981, 03, 01);
}
//...
}
Run Code Online (Sandbox Code Playgroud)
您可以使用如下命名参数调用它:
test(dt: new DateTime(2010, 03, 01));
Run Code Online (Sandbox Code Playgroud)
并使用如下默认参数:
test();
Run Code Online (Sandbox Code Playgroud)
svi*_*ick 60
直接执行此操作的唯一方法是使用值default(DateTime),即编译时常量.或者您可以通过使用DateTime?并设置默认值来解决这个问题null.
另请参阅此相关问题TimeSpan.
new DateTime()也等于DateTime.MinValue
你可以像这样创建一个默认参数.
void test(DateTime dt = new DateTime())
{
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88634 次 |
| 最近记录: |