(无法将void类型转换为字符串)

时间:2016-06-06 14:59:45

标签: c#

我非常努力,谷歌搜索了很多,但我仍然得到同样的错误..不知道要改变什么或如何改变。
错误发生在string std = Console.Write(p);
我确实将p分配给了hi,然后又归结为无效......?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace SoloLearn
{
    class Program
    {
        static void Main(string[] args)
        {
            string p = "hi";
            string str = " if (p == ";
            string std = Console.Write(p);
            File.WriteAllText("test.txt", str + std);
            string txt = File.ReadAllText("test.txt");
            Console.WriteLine(txt); 
        }
    }
}

我期待一个像if (p == hi的文本文件一样的输出..

3 个答案:

答案 0 :(得分:2)

您的代码中有错误

  ...
  string p = "hi";
  string str = " if (p == ";

  Console.Write(p); // just write, Console.Write returns void (i.e. nothing)

  File.WriteAllText("test.txt", str + p); // "+ p" not "+ std"
  string txt = File.ReadAllText("test.txt");
  Console.WriteLine(txt); 
  ...

答案 1 :(得分:0)

Console.Write不会返回任何值,因此您无法分配调用结果。

请注意,要在C#中指定“无返回值”特殊void返回类型,这会导致您看到的错误(以斜体显示):

  

“无法将void Console.Write的结果分配给string std变量的类型)“。

答案 2 :(得分:0)

你得到的错误

string std = Console.Write(p);

是由写入方法的返回类型引起的:" void" (又名"什么都没有")。 Console.Write 仅将其参数输出到您的控制台应用程序中。