Moq.Times参数默认值?如何创建结构常量,bc Moq.Times.Once() 不是编译时常量
Moq.Times parameter default value? how to create a struct constant, bc Moq.Times.Once() is not a compile time constant
我有一个类型为 Moq.Times 的参数,我希望它的默认值为 Moq.Times.Once() 除了 Once() 是一个方法而不是编译时间常量.
所以我将参数设置为可空并将默认值设置为空,然后在方法中,如果参数值为空,我将其设置为/调用 Moq.Times.Once() 就可以了,但我真正想做的是使用默认值 Moq.Times.Once()
有没有更聪明/更简单的方法来做到这一点?
我想要但没有编译的:
void MyMethod(Moq.Times invocationTimes = Moq.Time.Once()) { ... }
我做了什么:
void MyMethod(Moq.Times? invocationTimes = null) { if (invocationTimes == null) { invocationTimes = Times.Once(); }}
是的,您应该允许 null
然后在运行时替换它。
你可以让你的代码多一点concise with the null coalescing operator since C# 8:
void MyMethod(Moq.Times? invocationTimes = null)
{
invocationTimes ??= Times.Once();
...
}
我有一个类型为 Moq.Times 的参数,我希望它的默认值为 Moq.Times.Once() 除了 Once() 是一个方法而不是编译时间常量.
所以我将参数设置为可空并将默认值设置为空,然后在方法中,如果参数值为空,我将其设置为/调用 Moq.Times.Once() 就可以了,但我真正想做的是使用默认值 Moq.Times.Once()
有没有更聪明/更简单的方法来做到这一点?
我想要但没有编译的:
void MyMethod(Moq.Times invocationTimes = Moq.Time.Once()) { ... }
我做了什么:
void MyMethod(Moq.Times? invocationTimes = null) { if (invocationTimes == null) { invocationTimes = Times.Once(); }}
是的,您应该允许 null
然后在运行时替换它。
你可以让你的代码多一点concise with the null coalescing operator since C# 8:
void MyMethod(Moq.Times? invocationTimes = null)
{
invocationTimes ??= Times.Once();
...
}