导入所有子类,如Java但在C#中

Jay*_*arr 7 c#

这是一个如此愚蠢的问题,但我无法弄清楚要求谷歌的术语.

在Java中,如果我想导入所有子类,我会使用类似的东西

java.util.*
Run Code Online (Sandbox Code Playgroud)

并且所有util都将被导入.

首先,对于我在C#中所做的事情,正确的术语是什么,这样我才能更有效地开始使用Google.我是否导入名称空间?图书馆?子类?(你能告诉我这是新来的吗?)

其次,既然我在这里,这在C#中是如何实现的?

PS-我点击了每个相关的问题stackOverflow向我投掷,看看答案是否会弹出.没运气.我只是毫无言词地描述我正在寻找的东西.这个例子应该做得很好,但是......任何人都可以花一点时间向我解释这个术语,或者只是简单地指出一些可以(简而言之,我有几本书可以长期使用)的东西.大.

Rot*_*tem 18

首先,让我们区分程序集引用命名空间.

程序集是您在c#项目中添加引用的内容,它们是包含您需要的实际类的库,通常作为DLL文件找到..net框架包含许多此类程序集,Visual Studio将尝试引用项目中最常用的程序集(例如,对于WinForms项目,它将自动添加引用System.Drawing.dll).

命名空间是程序集中类的逻辑分区.

在项目中引用程序集后,如果提供其全名,则可以使用所有名称空间中的所有类.

这就是using指令的用武之地.它不仅仅是语法糖,因为它不必一直写很长的名字.

例如,假设您的项目引用了System.Drawing.dll程序集,则必须使用它的全名来限定此程序集中的类,例如

System.Drawing.Imaging.BitmapData
Run Code Online (Sandbox Code Playgroud)

因为这是令人厌烦的并且使代码膨胀,如果你用你的.cs文件启动它

using System.Drawing.Imaging;
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用名称实例化一个类BitmapData.这仅适用.cs于您添加using指令的文件,而不适用于整个项目.此外,重要的是要注意,using一个命名空间不会引入所有嵌套的命名空间,您必须using单独使用每个命名空间.