这个问题的最佳解决方案是什么?我正在尝试创建一个具有几个类类型可选参数的函数,其中null是一个有意义的值,不能用作默认值.如,
public void DoSomething(Class1 optional1, Class2 optional2, Class3 optional3)
{
if (! WasSpecified(optional1)) { optional1 = defaultForOptional1; }
if (! WasSpecified(optional2)) { optional2 = defaultForOptional2; }
if (! WasSpecified(optional3)) { optional3 = defaultForOptional3; }
// ... do the actual work ...
}
我不能使用Class1 optional1 = null因为null是有意义的.我不能使用一些占位符类实例,Class1 optional1 = defaultForOptional1因为这些可选参数的编译时常量要求我提出了以下选项:
有没有人想出一些聪明的解决方案呢?
谢谢!
编辑:我最后写了一个包装类,所以我没有必要继续重复Boolean HasFoo.
/// <summary>
/// A wrapper for variables indicating whether or not the variable has
/// been set.
/// …Run Code Online (Sandbox Code Playgroud)