导入所有子类,如Java但在C#中
这是一个如此愚蠢的问题,但我无法弄清楚要求谷歌的术语。
在Java中,如果我想导入所有子类,我会使用类似的东西
java.util.*
并且所有util都将被导入。
首先,对于我在C#中所做的事情,正确的术语是什么,这样我才能更有效地开始使用Google。 我是否导入名称空间? 图书馆? 子类? (你能告诉我这是新手吗?)
其次,既然我在这里,这在C#中是如何实现的?
PS-我确实点击了每个相关的问题stackOverflow向我投掷,看看答案是否会弹出。 没运气。 我简直无言以形容我正在寻找的东西。 这个例子应该做得很好但是……任何人都可以花一点时间向我解释这个术语,或者只是简单地指出一些可以(简而言之,我有几本书可以长期使用)的东西。大。
首先,让我们区分程序集引用和命名空间 。
程序集是您在c#项目中添加引用的组件,它们是包含您需要的实际类的库,通常作为DLL文件找到。 .net框架包含许多此类程序集,Visual Studio将尝试引用项目中最常用的程序集(例如,对于WinForms项目,它将自动添加对System.Drawing.dll
的引用)。
命名空间是程序集中类的逻辑分区。
在项目中引用程序集后,如果提供其全名,则可以使用所有名称空间中的所有类。
这就是using
指令的用武之地。它只是语法糖,因为它不必一直写很长的名字。
例如,假设您的项目引用System.Drawing.dll
程序集,您必须使用它的全名来限定此程序集中的类,例如
System.Drawing.Imaging.BitmapData
因为这很烦人并且代码膨胀,如果你用.cs
文件启动它
using System.Drawing.Imaging;
然后,您可以使用名称BitmapData
实例化一个类。 这仅适用于添加了using
指令的.cs
文件,而不适用于整个项目。 此外,重要的是要注意using
一个命名空间不会引入所有嵌套命名空间,您必须单独using
每个命名空间。
它可以被称为导入/引用/使用命名空间。
这种语言function在c#中不可用。
一点点解释:Namesspaces可以分布在多个库中。 因此,当您使用命名空间时,它可能会从多个引用的程序集中引用它。
它被称为namespace
,它由关键字using
导入。 例如:
using System;
此语句使您可以引用该命名空间中存在的所有类。 但是,它们不允许您引用声明的namespace
中的任何类。 您必须单独声明每个namespace
。 例如:
using System; using System.Text;
当然,您需要在项目中添加适当的引用,以指定using
指令。
在.Net中,首先需要确保存在包含要导入的命名空间的引用程序集。 一旦存在该引用,您可以使用’using’指令将该命名空间引入该类,以便不必完全限定所有对象名称。 您可以在MSDN上找到有关此指令的更多信息。
如果我误解了,请告诉我,我会尽力让你指出正确的方向。