为什么在Visual Studio for Mac中console.writeline不起作用?

9

我有一个在Visual Studio for Mac中刚刚创建的控制台应用程序。在Program.cs文件中,自动生成的代码显然存在错误。以下是代码:

using System;

namespace Console
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

因为它是放在那里的,而不是我放的,所以你期望它能正常工作,但实际上它并不能,会出现以下错误:

Console/Program.cs(13,13): Error CS0234: 命名空间“Console”中不存在类型或命名空间名称“WriteLine”(是否缺少程序集引用?)(CS0234) (Console)

如何修复此问题?

谢谢!


你不是在重叠命名空间 ConsoleSystem 吗? - Ilian Zapryanov
1个回答

28

如果您的命名空间叫做Console,那么当您调用WriteLine时,它会尝试在您的命名空间中查找一个类,并覆盖默认的System.Console。

要么重命名您的命名空间,要么显式指定位于System命名空间中的Console的命名空间:

 System.Console.WriteLine("Hello World!");

1
另一种选择是使用 using static System.Console;。然后你可以简单地写成 WriteLine("Hello World!"); - Olivier Jacot-Descombes
我在看答案之前刚刚弄清楚了这个问题。 - user13936206
另一个选项是将您的 using 语句放在最深的作用域中(即,在命名空间声明内部)。这也有助于避免其他命名冲突。例如 namespace Console { using System; class Main {} } - Ctrl-Zed
撤销@GlynnHurrell最近的编辑,因为它是错误的。原始答案是正确的。它不是在寻找一个名为WriteLine的方法,而是在寻找一个类型(就像错误所说的那样)。 - mjwills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接