我正在运行Windows并在C#中有一个函数来获取csv文件的行:
List<string> getRows(System.IO.Stream, out long)
我正在尝试使用以下内容上传本地文件:
using (FileStream csvFile = File.OpenRead(@"C:\Users\ME\Documents\test.csv"))
{
long s2 = csvFile.Length;
var rows = getRows(csvFile, s2);
}
这给了我一个错误,我将无效参数传递给getRows方法。我甚至尝试将csvFile强制转换为显式类型System.IO.Stream:
using (FileStream csvFile = File.OpenRead(@"C:\Users\ME\Documents\testUpload.csv"))
{
long s2 = csvFile.Length;
System.IO.Stream casted_csvFile = (System.IO.Stream) csvFile;
var rows = getRows(casted_csvFile, s2);
}
我上传的文件不正确吗?我是否滥用了System.IO.Stream类型?
答案 0 :(得分:0)
如果您定义了一个接受out
参数的方法:
public void Foo(out long bar)
{
....
}
调用该方法时,您必须使用out
关键字:
long bar;
Foo(out bar);
答案 1 :(得分:0)
Daniel Kelley的答案对将来遇到此问题的其他人更有帮助。
但是,在您的特定情况下,不应该将该长度参数作为out
变量。
在调用时不应添加out
,而应将签名更改为:
List<string> getRows(System.IO.Stream stream, long length)
完全删除out
。