将函数从 csharp 转换为 vb
Converting a function to vb from csharp
我使用 converter.telerik.com
转换了这段代码
来自
public Decimal CartTotal()
{
return this.Items.Sum<CartItem>((Func<CartItem, Decimal>) (x => x.Total));
}
到
Public Function CartTotal() As Decimal
Return Me.Items.Sum(Of CartItem)(CType((Function(x) x.Total), Func(Of CartItem, Decimal)))
End Function
但是编译器说
Overload resolution failed because no accessible 'Sum' accepts this
number of type arguments.
这是关于应该的问题,还是关于 Telerik 转换器的问题?如果是后者,那么您可能想与 Telerik 一起处理...
如果是前者,那么可能
Return (from item as CartItem in items Select item.Total).Sum()
您只需将通用说明符放在 'Sum':
Public Function CartTotal() As Decimal
Return Me.Items.Sum(CType(Function(x) x.Total, Func(Of CartItem, Decimal)))
End Function
我现在不知道为什么 VB 有这个问题,但这是一个常见问题。通常,该问题会影响任何 IEnumerable 扩展方法的使用。
我使用 converter.telerik.com
转换了这段代码来自
public Decimal CartTotal()
{
return this.Items.Sum<CartItem>((Func<CartItem, Decimal>) (x => x.Total));
}
到
Public Function CartTotal() As Decimal
Return Me.Items.Sum(Of CartItem)(CType((Function(x) x.Total), Func(Of CartItem, Decimal)))
End Function
但是编译器说
Overload resolution failed because no accessible 'Sum' accepts this number of type arguments.
这是关于应该的问题,还是关于 Telerik 转换器的问题?如果是后者,那么您可能想与 Telerik 一起处理...
如果是前者,那么可能
Return (from item as CartItem in items Select item.Total).Sum()
您只需将通用说明符放在 'Sum':
Public Function CartTotal() As Decimal
Return Me.Items.Sum(CType(Function(x) x.Total, Func(Of CartItem, Decimal)))
End Function
我现在不知道为什么 VB 有这个问题,但这是一个常见问题。通常,该问题会影响任何 IEnumerable 扩展方法的使用。