【问题标题】:Sending A File As A Method Argument?发送文件作为方法参数?
【发布时间】:2011-06-25 00:31:17
【问题描述】:

这种事情可能吗:

public static void DoThis(file aFile){
    //Blah blah blah
}

【问题讨论】:

  • 是的,您可以使用流、字节[] 或路径。需要更多信息。
  • 您的意思是文件名、文件数据、对打开文件流的引用?
  • 你为什么不试试这个? O.o 当然可以。
  • 除非你定义了一个名为file的类型,否则你会想要传递一个File类型的对象

标签: c# file variables arguments


【解决方案1】:

您可以传递的是文件句柄,即对文件对象或其二进制或文本格式的内容的引用。文件对象代表文件的处理程序,而不是实际的文件。

【讨论】:

  • C# 将允许您使用IntPtrSafeFileHandle 将句柄传递给文件。但是,这有点低级,主要仅对互操作有用。请参阅stackoverflow.com/questions/3562513/… 进行讨论。
【解决方案2】:

是的,你当然可以这样做。只记得检查空值....

public static void DoThis(file aFile)
{
    if ( aFile == null ) { // report error or whatever }
    //Blah blah blah
}

【讨论】:

  • @Marc Gravell 一个“文件”类型的类的实例
  • @Muad'Dib:由于file 不是框架的一部分,你的回答让我觉得是在乞求问题。
  • @Brian OP 提供了参数,我使用的是他/她的代码。
  • @Muad'Dib:但是既然 OP 是在问,“这种事情可能吗?”您的回答没有提供有关如何使其成为可能的任何信息。如标题所示,OP 的基本问题是如何将文件作为方法参数发送。该代码是他希望使用的语法示例。
  • @Brian 并且 OP 并没有说它是 System.IO.File 或一些自定义类,他只是询问是否可能。而且,正如我们所知,确实如此。
【解决方案3】:

这取决于你需要用它做什么:)

选项包括:

  • 路径(字符串)
  • 内容(字符串或字节[])
  • 内容的一些复杂对象模型(或您自己选择)
  • 文件信息
  • FileStream(或只是 Stream)
  • 某种读写器; TextReader、XmlWriter 等

【讨论】:

  • 如果是发布的文件(来自 HTML 输入字段),您也可以将文件作为 HttpPostedFile 传递(其类在 System.Web.dll 中)
  • 可能是每个选项的简短示例?
【解决方案4】:

当然。如果你在调用方法中有文件引用,那你肯定可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2020-08-06
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    相关资源
    最近更新 更多