所以我正在尝试创建一个可以在我所有类中使用的泛型表达式。
Function Test(field As String) As Func(Of T, String)
Dim xParam = Expression.Parameter(GetType(T), "o")
Dim prop = Expression.Property(xParam, GetType(T).GetProperty(field))
Dim lambda = Expression.Lambda(Of Func(Of T, String))(prop, xParam)
Return lambda.Compile()
End Function
然而,T未定义。如何在VB.NET中使用T?
答案 0 :(得分:3)
您必须声明类型变量。将您的方法签名更改为:
Function Test(Of T)(field As String) As Func(Of T, String)