4

我在 VB.NET 中的 ASP.NET 中有以下 2 行(对于 C#,只需将世界 'Dim' 替换为 'var'),我从一个示例中得到。

 Dim tmpFile = Path.GetTempFileName()
 Dim tmpFileStream = File.OpenWrite(tmpFile)

我收到一条错误消息File.OpenWrite(tmpFile),上面写着“重载解析失败,因为没有可访问的'文件'接受这个数量的参数”。谁能解释为什么会发生这个错误?我尝试查看文档,但似乎无法弄清楚。谢谢你。

4

2 回答 2

7

请注意,错误消息是指定File而不是OpenWrite。看起来File上下文中还有另一个优先级高于System.IO.File. 这很可能是错误的根源。尝试在此处使用完全限定名称

Dim tmpFileStream = System.IO.File.OpenWrite(tmpFile)
于 2012-11-15T17:47:23.707 回答
1

将以下行添加到代码文件的顶部:

Imports System.IO

此外,正如 Daniel 所建议的,通过使代码更清晰,指定您的类型可能会有所帮助,例如:

Dim tmpFile As String = Path.GetTempFileName()
Dim tmpFileStream As FileStream = File.OpenWrite(tmpFile)

String在最新版本的 VB 中,它会自动为您推断类型,因此即使您没有指定,它也会使 tmpFile 成为类型变量。但是,在旧版本的 VB 中,它只会使其成为基本Object类型,在这种情况下,它将无法确定要使用哪个重载。

于 2012-11-15T17:45:46.217 回答