C#Console.WriteLine来自哪里

时间:2017-09-02 21:12:03

标签: c# namespaces console-application

我是一名c#学习者。而且我不理解我的导师教我们的方式。所以我所做的就是在家里安装Visual Studio 2017并尝试做我们在学校所做的事情。

我不明白,参考。解决方案资源管理器中的那个。一个名为intelisense,以及using System;

之上的代码

在我的研究上。解决方案资源管理器中的参考选项卡是要在我们的程序中使用的库或预编译代码集合。

所以我做了什么删除了该程序的所有库引用。但为什么Console.WriteLine仍然有效?有没有图书馆参考?或者命名空间使用的是什么dll?

有人可以解释代码的用途吗?我们的教练通过阅读他在互联网上搜索的内容来教我们。他没有任何解释,他希望我们的新手从一开始就知道这样的技术。

`using System;` 

namespace Hello_World
class Program
intelisense

我唯一理解的是解决方案资源管理器中的引用,主要方法是启动程序。当我们运行程序时,其中的所有代码将首先被执行。

非常感谢您的时间。

2 个答案:

答案 0 :(得分:4)

你的问题确实非常广泛。你可能想考虑提出更具体的问题。

那就是说,我会尝试回答你的一些问题。

首先,一个库,在你的情况下* .dll文件,包含代码,即类,方法等。 您可以通过将这些库包含在项目中来在项目中引用此代码。然后,您可以访问例如来自您自己的代码的库中的方法。

通过using System;,您将包含一个所谓的命名空间。想象一下,就像某些相关对象所在的容器一样。

System命名空间在mscorlib.dll库中定义,在System命名空间内,有一个名为Console的类。 此Visual Studio项目中的自动包含/引用此mscorlib.dll库。 Console.WriteLine仍然有效,因为对mscorlib.dll的引用仍然存在且您是using System;。 没有那个using语句,它仍然可以工作,但只有当你输入System.Console.WriteLine();时,因为这就是using实际做的事情:它将命名空间包含在* .cs文件中,所以你没有必须每次都输入你正在使用的所有类的名称空间/程序集。

class Program声明一个名为“Program”的类,即使它不完整。 有关课程的解释,您可以从Microsoft C# Programming Guide开始。

关于你的Intellisense问题;我不太确定,有什么不清楚的。通常,Intellisense是Microsoft在Visual Studio中提供的自动完成功能。它还包含代码片段和一些更有用的东西。

最后,如果您的老师没有提供有关主题的足够信息,我建议您从头开始一般性地开始阅读有关(C#)编程的内容。互联网上有很多很棒的教程,解释了编程的各个方面。 C#/ .NET的一个好地方当然是各自页面上的Microsoft主题。

答案 1 :(得分:0)

我同意 rqnn ,我认为你需要一些时间和很多教程来提出这样的问题并处理答案,因为这是一个很大的话题。 关于c#以及.Net程序执行的https://www.youtube.com/watch?v=SXmVym6L8dw&list=PLAC325451207E3105教程的建议。

也许这个关于命名空间的插图可以帮助您处理 rqnn的答案。

using System;
using MySystem; 

namespace ConsoleApp1
{
    class Program
    {
         public static void Main(string [] args)
        {

            Console.WriteLine("Hello world");      
            MyConsole.MyWriteLine("Hello world");

            //other way (then you wouldn't need using System and using MySystem)

            System.Console.WriteLine("Hello world01");
            MySystem.MyConsole.MyWriteLine("Hello world01");

        }

    }   
}

// I've created my own namespace
namespace MySystem
{
    class MyConsole
    {
       public static void MyWriteLine(string message)
        {
          //  some complex code that displays message on console(in short term)
        }
    }

}

Main 方法中,我调用我创建的自己的命名空间,以及我创建的自己的方法以及 WriteLine 方法。希望你在调用时能找到相似之处这些方法。