2017-09-02 153 views
-1

我是一个C#学习者。我不明白我的教练教我们的方式。所以我做的是在家里安装Visual Studio 2017,并尝试做我们在学校做的事情。C#Console.WriteLine来自哪里

我不明白,引用。解决方案资源管理器中的一个。一个叫intelisense,以上代码using System;

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

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

有人可以请解释什么代码是用于?我们的教练通过阅读他在互联网上搜索的内容来教我们。根本没有解释他期望我们的新手从一开始就知道这样的技术性的东西。

`using System;` 

namespace Hello_World 
class Program 
intelisense 

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

非常感谢你的时间。

+0

“组件”选项卡中引用了系统。右键单击我们的项目 - >添加 - >引用.. - >程序集 - >框架 – 7raiden7

+0

这是一个太大的话题,需要在段落中回答。你需要购买一本书或遵循教程;我推荐[通过C#的CLR](https://www.microsoftpressstore.com/store/clr-via-c-sharp-9780735667457)。 –

+0

你可以开始学习辛苦的方式。忘记VS.打开你的记事本,编写一个程序,将它保存为something.cs并使用命令行编译器csc。现在你必须处理所有这些引用,但要确保你会学到很多东西。 –

回答

2

你的问题真的很广泛..你可能想考虑问更具体的问题。

这就是说,我会尽量回答你的一些问题。

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

通过using System;您正在包括一个所谓的名称空间。想象一下,就像容器一样,有些相关对象驻留在容器中。

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

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

至于你的有关Intellisense的问题;我不太清楚,关于这一点还不清楚。一般来说,Intellisense是Microsoft在Visual Studio中提供的自动完成功能。它还包含代码片段和一些更有用的东西。最后,如果你的老师没有提供关于这些主题的足够信息,我真的会建议你简单地从头开始阅读关于(C#)编程的东西。互联网上有很多很棒的教程,解释了编程的各个方面。 C#/ .NET的好地方当然是各自页面上的Microsoft主题。

+0

非常感谢。你的解释对我对现在问题的理解有所不同,你的解释让我更容易理解事物。我要读一些教程。 –

0

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

也许这个关于命名空间的插图将帮助你处理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) 
     } 
    } 

} 

主要方法,我打电话给我自己的命名空间,我创建的,和我自己的方法,我创建以及的WriteLine method.Hope调用这些方法时,u能找到相似。

+1

谢谢你的例子。 stackoverflow是一个很好的网站。感谢您分享你的知识 –