.NET DateTime类型变量作为参数时设置默认值

Posted Interkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET DateTime类型变量作为参数时设置默认值相关的知识,希望对你有一定的参考价值。

一个小的 Tips.

.NET 中函数参数的默认值需要是编译时常量。如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类型)想要设置默认类型时要如何处理?

通常情况下会给 DateTime 结构体默认当时时间,即 DateTime.Now,但 DateTime.Now 不是编译时常量,因此无法通过编译。

如以下代码无法通过编译:

public const DateTime defaultDateTime = DateTime.Now;

但可以通过设置 DateTime 类型参数为可空类型,给其默认参数为 null,并在函数中进行判断赋值来实现,如下代码:

static void TestMethod(DateTime? date = null)
{
    date = date ?? DateTime.Now; 
}

以上思路是将 DateTime 参数转换为可空类型,并赋予默认值 null,然后在函数体内先判断参数是否为空,如果为空则用 DateTime.Now 来赋值,否则使用参数值。

 

以上内容很简单,只是觉得这个 Tips 很好玩。

以上是关于.NET DateTime类型变量作为参数时设置默认值的主要内容,如果未能解决你的问题,请参考以下文章

设置一个空的 DateTime 变量

类 [DateTime('@-1')] 的 PHP 对象实例在另一个类中作为常量

在存储过程中使用日期时间作为参数更新表时出错

在net中怎么把datetime类型转换成毫秒数

sql server 存储过程 datetime 默认值????

asp.net中,如何调用系统时间作参数传到数据库中(DataTime类型)