错误上传文件?

时间:2014-06-17 15:42:53

标签: c# file-upload

我正在运行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类型?

2 个答案:

答案 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