如何解决Moq.Times 参数默认值?如何创建结构常量,bc Moq.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();
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。