首页 新闻 会员 周边

c#4.0特性 DateTime类型变量(作为参数时)怎么给默认值

0
悬赏园豆:15 [已解决问题] 解决于 2015-08-19 15:57

请问 1: static void TestMethod(DateTime date = DateTime.Now)
2: {
3: //Others...
4: } 
此时date默认值怎么赋?????

问题补充:

用DateTime.Now编译出错。。。要用常量。。。

小小高的主页 小小高 | 小虾三级 | 园豆:1095
提问于:2015-08-19 00:08
< >
分享
最佳答案
0
static void TestMethod(DateTime? date = null)
{
  date = date??DateTime.Now; 
}
收获园豆:15
幻天芒 | 高人七级 |园豆:37175 | 2015-08-19 09:05

我就是要在上面给一个默认值,不用可空类型。。。

小小高 | 园豆:1095 (小虾三级) | 2015-08-19 09:28

@小小高: 这么完美的解决方案不要?值缺省的时候赋当前时间,都符合你的,一个要写死在上面赋个?

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-08-19 09:55

@稳稳的河: 我现在就是这样用的,但是强迫症犯了。。。

小小高 | 园豆:1095 (小虾三级) | 2015-08-19 15:46
其他回答(4)
0

你把DateTime类型换成string类型不就行了

MrNice | 园豆:3450 (老鸟四级) | 2015-08-19 08:56

我要用DateTime类型(不要可空的),注:变量给不了。。请具体点

支持(0) 反对(0) 小小高 | 园豆:1095 (小虾三级) | 2015-08-19 09:30

@小小高: 

        static void Test(string dateTime = "2015-08-19")
        {
            DateTime date = DateTime.Parse(dateTime);
        }
支持(0) 反对(0) MrNice | 园豆:3450 (老鸟四级) | 2015-08-19 09:42
0

在全局申明一个 常量 datetime

 public static const DateTime defaultDateTime = DateTime.Now;

然后你方法上 等于这个 defaultDateTime

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-08-19 09:37

你确定你这样申明常量没有问题?

支持(0) 反对(0) MrNice | 园豆:3450 (老鸟四级) | 2015-08-19 09:39

@MrNice: 有问题 我测试下在回复

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-08-19 09:41

@MrNice: 我测试的结果是 datetime 不能被设置为常量

所以static void TestMethod(DateTime date = DateTime.Now)

这种写法天生没戏

但是可以按 幻天芒的来

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-08-19 17:28
0

没办法让一个DateTime类型对象作为一个编译时常量的(也许是我还没想到吧)

不过作为程序员,我们很多时候真的要转个弯来解决为题,程序不可能一直都能直接按照我们的想法来解决问题

我比较支持 幻天芒的解决方案

海之殇 | 园豆:500 (菜鸟二级) | 2015-08-19 13:42
1

可以使用DateTime date = new DateTime()或DateTime date = default(DateTime)

DorianSOS | 园豆:202 (菜鸟二级) | 2016-10-14 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册