作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在使用带有可选参数的 C# 4.0 时遇到了另一个问题。
我如何调用一个我知道它不需要任何参数的函数(或者更确切地说是一个构造函数,我有 ConstructorInfo
对象)?
这是我现在使用的代码:
type.GetParameterlessConstructor()
.Invoke(BindingFlags.OptionalParamBinding |
BindingFlags.InvokeMethod |
BindingFlags.CreateInstance,
null,
new object[0],
CultureInfo.InvariantCulture);
(我刚刚尝试使用不同的 BindingFlags
)。
GetParameterlessConstructor
是我为Type
编写的自定义扩展方法。
最佳答案
根据 MSDN , 要使用默认参数,您应该传递 Type.Missing
。
如果您的构造函数具有三个可选参数,那么您将传递一个三元素对象数组,而不是传递一个空对象数组,其中每个元素的值为 Type.Missing
,例如
type.GetParameterlessConstructor()
.Invoke(BindingFlags.OptionalParamBinding |
BindingFlags.InvokeMethod |
BindingFlags.CreateInstance,
null,
new object[] { Type.Missing, Type.Missing, Type.Missing },
CultureInfo.InvariantCulture);
关于c# - 通过反射调用带有可选参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421994/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!