C# 为什么这是名称空间的错误用法?

C# 为什么这是名称空间的错误用法?,c#,namespaces,C#,Namespaces,我正在学习c#,但我对名称空间不是很确定。我知道我可以省略任何“using”语句,只说System.Console.WriteLine,或者我可以说“using System”,然后说“Console.WriteLine”,但我不明白为什么下面的语句不起作用 using System.Console; namespace HelloWorld { public class Program { public static void Main(string[] ar

我正在学习c#,但我对名称空间不是很确定。我知道我可以省略任何“using”语句,只说System.Console.WriteLine,或者我可以说“using System”,然后说“Console.WriteLine”,但我不明白为什么下面的语句不起作用

using System.Console;

namespace HelloWorld
{
    public class Program
    {
        public static void Main(string[] args)
        {
            WriteLine("Hello world");
        }
    }
}

Console
不是名称空间,而是类
WriteLine
是该类的静态方法(因此不需要实例来使用它)。实际上,
控制台
类本身似乎是静态的(因此没有实例)

不能使用C#5.0及更早版本中的类
。根据这篇MSDN文章(),您只能在C#6.0中使用静态类(您编写的代码可以编译并工作)


对于
控制台
类。

当前,
使用
语句仅包括名称空间。因为
Console
不是名称空间,所以不能这样使用它

这是将包含在C#6中的功能之一,请参见:

-----------------------------------------------------------------
|特征|示例| C#|
------------------------------------------------------------------
|使用静态成员|使用System.Console…写(4)|完成|
------------------------------------------------------------------

此功能对于C#6是新功能。您不能使用类(在C#5中)来
。在C#6.0中,这是可能的。@HighCore,谢谢你的提醒!我还没有使用C#6.0,所以也许你可以为C#6?写一个答案,所以说Console是属于系统名称空间的类是正确的,这就是为什么上面的代码是不正确的?@david,这是正确的。正如HighCore所指出的那样,您的代码在C#6中是完美的。