【问题标题】:Writing to text file gives me errors写入文本文件给我错误
【发布时间】:2010-11-09 21:53:27
【问题描述】:

下面的代码给了我三个编译器错误。它们如下:

  1. 找不到类型或命名空间名称“TextWriter”(是否缺少 using 指令或程序集引用?)
  2. 当前上下文中不存在名称“文件”
  3. 当前上下文中不存在名称“文件名”

谁能解释一下为什么会出现这些错误,以及如何解决这些错误?

private void button1_Click(object sender, EventArgs e)
{
   using (TextWriter writer = File.CreateText(filename.txt)) {
      writer.WriteLine("First name: {0}", textBox1.Text);
      writer.WriteLine("Last name: {0}", textBox2.Text);
      writer.WriteLine("Phone number: {0}", maskedTextBox1.Text);
      writer.WriteLine("Date of birth: {0}", textBox4.Text);
   } 
}

【问题讨论】:

    标签: c# file-io compiler-errors


    【解决方案1】:

    对于错误 1 ​​和错误 2,请确保您是 using System.IO;

    对于错误 3,如果要读取的文件的名称是“filename.text”,请确保像这样放置引号:

    using (TextWriter writer = File.CreateText("filename.txt"))
    

    因为否则它会尝试查找变量filename 和属性txt 而不是字符串“filename.txt”。

    【讨论】:

      【解决方案2】:
      File.CreateText(filename.txt)
      

      如果是文件名,则需要将文件名放在引号中,否则使用正确的变量名。

      例如

      File.CreateText("filename.txt");
      

      File.CreateText(path);
      

      正如甜甜圈所说,将using System.IO 添加到文件顶部。

      【讨论】:

      • 嗯?他缺少命名空间引用。
      • @Ed Swangren - 请参阅第三个错误:“当前上下文中不存在名称'文件名'”他需要引号。可能你不熟悉这个方法:msdn.microsoft.com/en-us/library/system.io.file.createtext.aspx
      • 不开玩笑。 “命名空间引用”没有任何意义。
      • @Beemer - 你有足够的代表来解决这个问题。你为什么不呢?
      【解决方案3】:

      首先,您缺少 System.IO 命名空间的 using 指令,这是 TextWriterFile 类所在的位置。在文件顶部添加以下行,这应该可以解决您的前两个错误:

      using System.IO;
      

      其次,File.CreateText() 方法将字符串作为参数。在您的代码中,“filename.txt”不是字符串。改用这一行:

      using (TextWriter writer = File.CreateText("filename.txt") {
      

      【讨论】:

      • 请修复“缺少参考”。引用是针对程序集的,他只缺少一个 using 指令
      猜你喜欢
      • 2020-08-04
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多