我使用带有可选参数的C#4.0遇到了另一个问题.
我如何调用一个函数(或者更确切地说是构造函数,我有ConstructorInfo对象),我知道它不需要任何参数?
这是我现在使用的代码:
type.GetParameterlessConstructor()
.Invoke(BindingFlags.OptionalParamBinding |
BindingFlags.InvokeMethod |
BindingFlags.CreateInstance,
null,
new object[0],
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
(我刚试过不同的BindingFlags).
GetParameterlessConstructor是我写的自定义扩展方法Type.
我有一个带有可选字符串参数的方法.需要基于其他输入之一创建此参数的默认字符串值.所以我不能直接在方法参数中定义默认值.我可以将默认值设置为null然后检查它,但是如果提供的字符串实际上为null,则可能会产生一些难以调试的情况.有没有办法检查参数是否实际提供?
public static method(String input1, String input2 = null)
{
if (noSecondParameter())
{
input2 = getDefaultInput(input1)
}
}
Run Code Online (Sandbox Code Playgroud)