我是C#的新手,我正在尝试在控制台应用程序中编写一个非常基本的刮刀但是我收到了错误:
Cannot implicitly convert type void to string
我在下面的代码中尝试做的是将返回的输入设置为变量并将该变量返回到我的Main方法。这样主要方法可以访问和读取返回的值,以便在需要时显示。
private static string setTargetModule()
{
string targetUrl = Console.Write("Target: http://");
return targetUrl;
}
答案 0 :(得分:7)
问题是Console.Write("Target: http://")
没有返回任何内容,因为它是void
。
要解决此问题,您需要将文本输出到屏幕上,然后明确地将其读回。因此,您的代码将成为:
private static string setTargetModule()
{
Console.Write("Target: http://");
string targetUrl = Console.ReadLine();
return targetUrl;
}
或略短:
private static string setTargetModule()
{
Console.Write("Target: http://");
return Console.ReadLine();
}
答案 1 :(得分:1)
Console.Write("Target: http://")
什么都不返回,只是写入Console
。那是void
。您无法将void
分配给string
答案 2 :(得分:1)
使用三行而不是两行:
string targetUrl = "Target: http://";
Console.Write(targetUrl);
return targetUrl;
您需要在写入控制台之前将字符串"Target: http://"
设置为变量,因为Console.Write()返回类型void:
void Console.Write(string value)
原始代码基本上是这样的:string targetUrl = void;