为什么这是对命名空间的错误使用?

时间:2014-07-01 18:31:47

标签: c# namespaces

我正在学习c#,但我对命名空间不太确定。我知道我可以放弃任何"使用"语句,只是说System.Console.WriteLine,或者我可以说"使用System"然后说'#34; Console.WriteLine",但我不明白为什么以下不起作用。

using System.Console;

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

2 个答案:

答案 0 :(得分:3)

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

你不能在{C#5.0及更早版本中using一个类。根据这篇MSDN文章(http://msdn.microsoft.com/en-us/magazine/dn683793.aspx),可以只在C#6.0中使用静态类来执行此操作(您编写的代码将编译和工作)。

MSDN用于Console类。

答案 1 :(得分:2)

目前,using语句仅包含名称空间。由于Console不是命名空间,因此不能像那样使用它。

这是C#6中包含的功能之一,请参阅relevant Roslyn page

 -----------------------------------------------------------------
| Feature              | Example                          |  C#  |
------------------------------------------------------------------
| Using static members | using System.Console; … Write(4) | Done |
------------------------------------------------------------------