使用泛型 T 的 DefineMethod
DefineMethod with generic T
The type or namespace name 'T' could not be found
如何在参数中使用 T
?
Type[] tparams = { typeof(Expression<Func<T, object>>) };
MethodBuilder methodId = tbuilder.DefineMethod("Id", MethodAttributes.Public, typeof(IdentityPart), tparams);
代码必须是通用方法或class:
的一部分
方法:
public void Method<T>()
{
// code snnipet
Type[] tparams = { typeof(Expression<Func<T, object>>) };
}
Class:
public class Class<T>
{
public void Method()
{
// code snnipet
Type[] tparams = { typeof(Expression<Func<T, object>>) };
}
}
您可以使用辅助方法作为填充类型参数的工具。假设您希望 T 成为一个名为 MyVerySpecialType:
的 class
public static class Helper
{
public static Type[] TypeArrayReturnerWithGeneric<T>()
{
return new Type[] { typeof(Expression<Func<T, object>>) };
}
}
那么你可以这样做:
MethodBuilder methodId = tbuilder.DefineMethod("Id", MethodAttributes.Public, typeof(IdentityPart), Helper.TypeArrayReturnerWithGeneric<MyVerySpecialType>());
The type or namespace name 'T' could not be found
如何在参数中使用 T
?
Type[] tparams = { typeof(Expression<Func<T, object>>) };
MethodBuilder methodId = tbuilder.DefineMethod("Id", MethodAttributes.Public, typeof(IdentityPart), tparams);
代码必须是通用方法或class:
的一部分方法:
public void Method<T>()
{
// code snnipet
Type[] tparams = { typeof(Expression<Func<T, object>>) };
}
Class:
public class Class<T>
{
public void Method()
{
// code snnipet
Type[] tparams = { typeof(Expression<Func<T, object>>) };
}
}
您可以使用辅助方法作为填充类型参数的工具。假设您希望 T 成为一个名为 MyVerySpecialType:
的 classpublic static class Helper
{
public static Type[] TypeArrayReturnerWithGeneric<T>()
{
return new Type[] { typeof(Expression<Func<T, object>>) };
}
}
那么你可以这样做:
MethodBuilder methodId = tbuilder.DefineMethod("Id", MethodAttributes.Public, typeof(IdentityPart), Helper.TypeArrayReturnerWithGeneric<MyVerySpecialType>());