将C#字节数组函数转换为vb.net
我正在尝试转换此代码将C#字节数组函数转换为vb.net,c#,vb.net,type-conversion,C#,Vb.net,Type Conversion,我正在尝试转换此代码 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>());
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>());
}
公共静态字节[]换行符(此字节[]字节,int feed=1)
{
返回bytes.AddBytes(((IEnumerable)new byte[feed])。选择((Func)(x=>(byte)10)).ToArray();
}
在线转换器生产这种产品
<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
_
公共函数换行符(ByVal bytes()作为Byte,可选的ByVal feeds作为Integer=1)作为Byte()
返回bytes.AddBytes((DirectCast(newbyte(feed-1){},IEnumerable(Of Byte)))。选择(Of Byte,Byte)CType(Function(x)CByte(10),Func(Of Byte,Byte)).ToArray()
端函数
这是一个错误
重载解析失败,因为没有可访问的“选择”接受此选项
类型参数的数目
我如何解决这个问题?我不清楚为什么指定类型参数失败,但无论如何也不需要这样做-而且
CType
的位置似乎被破坏了。如果更改选择调用:
.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))
我不清楚为什么指定类型参数会失败,但无论如何都不需要这样做-而且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))
你有系统的导入吗。Linq?是的,这就是为什么它说no select accepts…
这是一种非常复杂的向集合添加10
的方法。请注意,feed
的值被忽略,并且一直添加10。我没有看到CType
这个转换器我用这个转换器得到了这个值公共函数NewLine2(ByVal字节作为Byte(),可选ByVal feeds作为Integer=1)作为Byte()返回bytes.AddBytes(DirectCast(New Byte(feeds-1){},IEnumerable(Of Byte)).[Select](Of Byte,Byte)(DirectCast(Function(x)CByte(10),Func(Of Byte,Byte)).ToArray(Of Byte)))End Function
它仍然有DirectCast
,这仍然会给出上面的错误您是否有系统的导入。Linq?是的,这就是为什么它说no select accepts…
这是一种非常复杂的方法,可以将10
添加到集合中。请注意,feed
的值被忽略,而10是addd一直都是。我看不到这个转换器的CType
,我是用这个转换器得到这个的\uu公共函数NewLine2(ByVal字节作为Byte(),可选ByVal feeds作为Integer=1)作为Byte()返回字节。AddBytes(DirectCast)(新字节(feeds-1){},IEnumerable(Of Byte))[Select](Of Byte,Byte)(DirectCast(Function)(x)CByte(10),Func(Of Byte,Byte)).ToArray(Of Byte)()End函数
它仍然有DirectCast
,这仍然给出了上述错误