美好的一天。
我正在研究处理任务的事情
每个任务由3个字符串和一个DateTime对象
下面是我构建的构造函数。
public Task(string von, string was, string an, DateTime zeit = DateTime.Now)
编译时出现编译错误
Default parameter value for 'zeit' must be a compile-time constant (CS1736)
我认为问题是,-obvioulsy- DateTime.Now的值取决于构造函数被调用的时间,这是我想要的全部内容。
我已经查看了[this]线程,但它并不真正适用于我,因为DateTime对象的内存需求总是相同的,并且该线程说问题是该调用的未知堆需求。{ {3}}
我已经有了一个解决方案的想法(见下文),但我们都知道解决方法不是最佳实践
public Task(string von, string was, string an, DateTime zeit){
if(zeit == null)
dateOfCreation = DateTime.Now; //dateOfCreation being the name of Task's internal DateTime field.
else
dateOfCretion = zeit;
因此,如果我想使用当前的DateTime,我会传递null。但是:如果我花时间和精力始终专门传递null,我不妨每次都传递DateTime.Now。
问题:
有没有办法让参数DateTime zeit = DateTime.Now
被接受或替换为相同的结果?
答案 0 :(得分:8)
使用构造函数重载:
public Task(string von, string was, string an, DateTime zeit)
{
...
}
public Task(string von, string was, string an) : this(von, was, an, DateTime.Now)
{
...
}