相关疑难解决方法(0)

通过反射调用带有可选参数的方法

我使用带有可选参数的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.

.net c# reflection invoke default-value

55
推荐指数
2
解决办法
2万
查看次数

检查是否提供了可选参数

我有一个带有可选字符串参数的方法.需要基于其他输入之一创建此参数的默认字符串值.所以我不能直接在方法参数中定义默认值.我可以将默认值设置为null然后检查它,但是如果提供的字符串实际上为null,则可能会产生一些难以调试的情况.有没有办法检查参数是否实际提供?

  public static method(String input1, String input2 = null)
  {
      if (noSecondParameter())
      {
          input2 = getDefaultInput(input1)
      }
  }
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
649
查看次数

标签 统计

c# ×2

.net ×1

default-value ×1

invoke ×1

reflection ×1