在可选参数设置日期时间默认值 [英] Set default value for DateTime in optional parameter
本文介绍了在可选参数设置日期时间默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在可选参数设置默认值的DateTime?
公共SomeClassInit(GUID的docId,日期addedOn =日期时间。现在???)
{
//初始化代码这里
}
解决方案
有是一种解决方法,利用可空类型的和事实,即空
是一个编译时间常数。 (这是一个黑客位的,虽然,我会建议避免它,除非你真的不能。)
公共无效SomeClassInit(?的Guid的docId,日期addedOn = NULL)
{
如果
addedOn = DateTime.Now(addedOn.HasValue!);
//初始化代码这里
}
在一般情况下,我宁愿标准的重载方法在其他的答案提示:
公共SomeClassInit(GUID的docId)
$ { b $ b SomeClassInit(的docId,DateTime.Now);
}
公共SomeClassInit(GUID的docId,日期addedOn)
{
//初始化代码这里
}
How can I set default value for DateTime in optional parameter?
public SomeClassInit(Guid docId, DateTime addedOn = DateTime.Now???)
{
//Init codes here
}
解决方案
There is a workaround for this, taking advantage of nullable types and the fact that null
is a compile-time constant. (It's a bit of a hack though, and I'd suggest avoiding it unless you really can't.)
public void SomeClassInit(Guid docId, DateTime? addedOn = null)
{
if (!addedOn.HasValue)
addedOn = DateTime.Now;
//Init codes here
}
In general, I'd prefer the standard overloading approach suggested in the other answers:
public SomeClassInit(Guid docId)
{
SomeClassInit(docId, DateTime.Now);
}
public SomeClassInit(Guid docId, DateTime addedOn)
{
//Init codes here
}
这篇关于在可选参数设置日期时间默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文