MethodName作为没有方法参数的类型参数
本文关键字:参数 类型参数 有方法 MethodName | 更新日期: 2023-09-27 18:10:04
是否可以创建一个以MethodName作为类型化参数的方法?我在编译时检查方法的名称后。我知道我可以做以下事情——传入方法名称的字符串:
public static DoStuff<TType>(Mock<TType> mockType, string methodName)
{
var methods = mockType.GetMethods(BindingFlags.Public | BindingFlags.Instance)
.Where(method => method.Name == methodName && method.ReturnType == typeof(TResult))
.ToList();
// ...
}
和使用:
var myType = new Mock<MyType>();
myType.DoStuff("Update");
但是有没有一种方法可以这样做:
var myType = new myType();
myType.DoStuff(m => m.Update)
在编译时求值,如果类型'MyType'上不存在'Update',则会抛出。
谢谢。
不,对不起。除非指定一个实际的泛型参数,否则无法进行编译时检查,这需要在编译时知道类型。