我有这样的扩展方法:
<Extension()>
Public Function Trim(value As Object, MaxLength As Integer) As String
If value IsNot Nothing AndAlso value.ToString.Length > MaxLength Then
Return value.ToString.Substring(0, MaxLength)
Else
Return value.ToString
End If
End Function
我的假设是,我可以在数据绑定时使用Eval("MyColumnName").Trim(20)
(而不是像MyMethod(Eval(“MyColumnName”)这样做)但事实证明这是不正确的。
有没有办法在Eval方法上使用扩展名?
PS:我将我的扩展引用为全局参考
答案 0 :(得分:1)
事实证明,虽然您可以扩展Object
类型,但您无法使用Object
类型的变量来调用该方法。
MSDN Magazine: Basic Instincts: Extension Methods
Dim myString As String = "ABC123"
Dim myObject As Object = "ABC123"
Dim myResult as String
myResult = myString.Trim(3) ' Works
myResult = myObject.Trim(3) ' Fails
所以我认为你所希望的最好的单线是:
Eval("MyColumnName").ToString.Trim(20)