我正在尝试转换此代码
public static byte[] NewLine(this byte[] bytes, int feeds = 1)
{
return bytes.AddBytes(((IEnumerable<byte>) new byte[feeds]).Select<byte, byte>((Func<byte, byte>) (x => (byte) 10)).ToArray<byte>());
}
在线转换器生成此
<System.Runtime.CompilerServices.Extension> _
Public Function NewLine(ByVal bytes() As Byte, Optional ByVal feeds As Integer = 1) As Byte()
Return bytes.AddBytes((DirectCast(New Byte(feeds - 1){}, IEnumerable(Of Byte))).Select(Of Byte, Byte)CType(Function(x) CByte(10), Func(Of Byte, Byte)).ToArray())
End Function
给出错误
重载解析失败,因为没有可访问的“选择”接受此操作 类型参数的数量。
任何人都可以帮助我吗?
答案 0 :(得分:3)
我不清楚为什么指定类型参数失败,但无论如何都不需要 - 并且CType
的位置看起来被打破了。如果您将Select
调用更改为:
.Select(CType(Function(x) CByte(10), Func(Of Byte, Byte)))
然后它编译 - 但你也可以完全摆脱CType:
.Select(Function(x) CByte(10))
(这种简化也适用于C#代码,其中:
.Select<byte, byte>((Func<byte, byte>) (x => (byte) 10))
可以简化为:
.Select(x => (byte) 10)