任何帮助都会受到赞赏,我正在尝试将下面的代码转换为C#,我从未使用过VB.NET,所以ReDim对我来说是新的。
由于
Dim inFile As System.IO.FileStream
Dim binaryData() As Byte
Dim strFileName As String
strFileName = "C:\MyPicture.jpeg"
inFile = New System.IO.FileStream(strFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)
''//Retrive Data into a byte array variable
ReDim binaryData(inFile.Length)
Dim bytesRead As Long = inFile.Read(binaryData, 0, CInt(inFile.Length))
inFile.Close()
答案 0 :(得分:10)
代码可以逐字转换,但是有一种更简单的方法来实现它的功能(从文件中读取所有字节),即
var binaryData = File.ReadAllBytes(strFileName);
我个人将strFileName
重命名为fileName
因为匈牙利符号在.NET代码中不受欢迎......但这是另一回事!
答案 1 :(得分:3)
这很容易转换为C#。
FileStream inFile;
byte[] binaryData;
string strFileName;
strFileName = @"C:\MyPicture.jpeg";
inFile = new System.IO.FileStream(strFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
binaryData = new byte[inFile.Length];
int bytesRead = inFile.Read(binaryData, 0, binaryData.Length);
inFile.Close();
但是有更好的方式来写这个。
string fileName = @"C:\MyPicture.jpeg";
byte[] binaryData = File.ReadAllBytes(fileName);
答案 2 :(得分:2)
我相信ReDim语句只是用于初始化数组:
byte[] binaryData;
binaryData = new byte[inFile.Lenght];
答案 3 :(得分:2)
嗯,最近的翻译将是:
binaryData = new byte[inFile.Length];
因为尚未分配,或者:
Array.Resize(ref binaryData,inFile.Length);
如果已先前已分配。但是,代码本身非常不安全(您不应该假设Read
读取所有请求的数据);这里更简单的方法是:
binaryData = File.ReadAllBytes(strFileName);
答案 4 :(得分:2)
如果您要将大量VB.NET转换为C#,则可能需要查看VBConversions conversion tool。
答案 5 :(得分:1)
ReDim重新分配数组。大多数情况下,这是代码气味:症状或真正想要集合类型而不是数组。这段代码应该做你想要的:
string FileName = @"C:\MyPicture.jpeg";
byte[] binaryData;
long bytesRead;
using (var inFile = new System.IO.FileStream(FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read) )
{
binaryData = new byte[inFile.Length];
bytesRead = inFile.Read(binaryData, 0, (int)inFile.Length);
}
//I'm assuming you're actually doing something with each byte array here
答案 6 :(得分:0)
ReDim用于调整大小数组。 (如果需要,您也可以保留内容。此代码不会这样做)
答案 7 :(得分:0)
如果您将来需要再次执行此操作,这是一个永久解决方案。
以下是在线VB到C#代码转换器的链接,反之亦然。一个是here,另一个是here。
LinkText1:http://www.developerfusion.com/tools/convert/vb-to-csharp/ LinkText2:http://converter.telerik.com/