这是一个如此愚蠢的问题,但我不知道该怎么问谷歌。
在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
每个名称空间。
你必须温习一下你的Google-fu
http://www.harding.edu/fmccown/java_csharp_comparison.html名称空间
可以称为导入/引用/使用命名空间
c#中没有这样的语言特性。
一点解释:名称空间可以分布在多个库中。因此,当您使用一个命名空间时,它可以从多个引用程序集引用它。
它被称为namespace
,它是通过关键字using
导入的。例如:
using System;
该语句允许您引用该命名空间中存在的所有类。但是,它们不允许您引用已声明的namespace
的子名称空间中的任何类。您必须分别申报每个namespace
。例如:
using System;
using System.Text;
当然,您需要在指定using
指令的项目中添加适当的引用。
在。net中,您首先需要确保存在包含您想要导入的名称空间的引用程序集。一旦该引用存在,就可以使用'using'指令将该命名空间引入类中,这样就不必完全限定所有对象名称。您可以在MSDN上找到有关此指令的更多信息。
如果我误解了,让我知道,我会尽我最大的努力为你指出正确的方向。