我有一个这样的扩展方法:
<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:我的扩展名被引用为全局引用
发布于 2012-01-18 02:23:48
事实证明,虽然可以扩展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)
https://stackoverflow.com/questions/8904100
复制