2012-12-27 15 views
6

这是一个愚蠢的问题,但我无法弄清楚要问Google的术语。导入像Java一样的所有子类,但在C#中

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

java.util.* 

而且所有UTIL将被导入。首先,我在C#中做什么是正确的行话,所以我可以更有效地开始使用Google。我是否在导入命名空间?图书馆?子类? (你能告诉我是新的吗?)

其次,因为我在这里,这是怎么实现的C#?

PS-我没有点击每个相关的问题stackoverflowflow扔我看看答案会弹出。没有运气。我简直无言以形容我在找什么。这个例子应该没​​问题,但是...任何人都可以花一点时间向我解释术语,或者只是指向我一些可以(简而言之,我有一对长期的书),这将是大。

+2

您正在导入命名空间。 C#中没有这样的结构 –

回答

18

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

组件是你在你的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

+0

谢谢。一个非常简单,深思熟虑的答复。另外,现在我知道为什么我必须在#Develop中使用引用thingy,然后才在代码中使用'using'。再次感谢! –

4

它可以被称为导入/引用/使用名称空间。

这样的语言功能在c#中不可用。

有点解释:Namesspaces可以分布在多个库中。所以当你使用一个名字空间时,它可能会从多个引用的程序集中引用它。

+0

啊,好的。所以我根据需要导入它们。那么,至少应该有更好的编码实践,虽然我喜欢有时候会作弊......只是为了检查我是否使用了'代码'这样的代码'使用ExcelApi代码',它不包含使用ExcelApi.Utils代码'代码' '作为例子?我必须同时执行两个导入才能获得两个级别的命名空间? –

+0

这就是..把它放在一个简单的..使用系统和使用System.Web是不同的。 – humblelistener

0

在.Net中,您首先需要确保存在包含要导入的名称空间的引用程序集。一旦存在该引用,就可以使用'using'指令将该名称空间带入类中,以便不必完全限定所有对象名称。你可以找到更多关于这个指令on MSDN信息。

如果我误解了,请告诉我,我会尽我所能让您指出正确的方向。

1

这就是所谓的namespace并且它是由一个关键字using进口。例如:

using System; 

该语句使您能够引用该名称空间中存在的所有类。但是,它们不能让您在声明的namespace的子名称空间中引用任何类。你必须分别申报每个namespace。例如:

using System; 
using System.Text; 

当然,你需要有添加到你指定的using指令的项目适当引用。

相关问题