在可选参数设置日期时间默认值 [英] Set default value for DateTime in optional parameter

查看:278
本文介绍了在可选参数设置日期时间默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在可选参数设置默认值的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆