namespace 命名空间名可以是任何合法的标识符。命名空间名可以包含句号。 namespace Hunts.Test 示例:(略) using 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 下面的示例显示了如何为类定义 using 指令和 using 别名: namespace N2 namespace Hunts.Keywords using type1 = N1.A; class App type1 t1 = new type1(); // C# 通过 .NET Framework 公共语言运行库 (CLR) 来自动释放用来存储不再需要的对象的内存。内存的释放具有不确定性;一旦 CLR 决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。 外部别名 若要引用两个具有相同完全限定类型名的程序集,必须在命令行上指定别名,如下所示: 比如有程序集a1.dll: // Assembly a1.dll: 再引用程序集a2.dll: Assembly a2.dll: 那么以下的程序就会出错: class Test 然后使用导入外部别名的方法就可以解决这个问题: // 先在命令行执行csc /r:X=a1.dll /r:Y=a2.dll test.cs // 导入外部别名 class Test
namespace 关键字用于声明一个范围。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法:
即使未显式声明命名空间,也会创建默认命名空间。该未命名的命名空间(有时称为全局命名空间)存在于每一个文件中。全局命名空间中的任何标识符都可用于命名的命名空间中。
命名空间隐式具有公共访问权,并且这是不可修改的。
在两个或更多的声明中定义一个命名空间是可以的。如在同一个文件中分别将两个类定义为 MyCompany 命名空间的一部分:
// keywords_namespace.cs
namespace Hunts.Test
{
class MyClass1
{
//
}
}
{
class MyClass2
{
//
}
}
using 关键字有两个主要用途:
using namespace;
using alias = type|namespace;
// Type:您想通过 alias 表示的类型。这种做法可以用于处理在同时引用包含了相同名称的类的命名空间,并需要使用而引发的冲突。(见示例1)
// namespace:您想通过 alias 表示的命名空间。或者是一个命名空间,它包含您想在无需指定完全限定名的情况下使用的类型。
作为语句,用于定义一个范围,在此范围的末尾将释放对象。
Font myFont = new Font(“Arial”, 10.0f);
using (myFont)
{
// use myFont
}
示例:
// using 关键字
// keywords_using.cs
using System;
namespace N1
{
class A
{
public void Test()
{
//
}
}
}
{
class A
{
public void Test()
{
//
}
}
}
{
// 一般做法
//using N1;
//using N2;
using type2 = N2.A;
{
static void Main()
{
// 一般做法
// N1.A c1 = new N1.A();
// N2.A c2 = new N2.A();
type2 t2 = new type2();
}
}
}
注意:
using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。
可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。
有时可能有必要引用具有相同完全限定类型名的程序集的两个版本,例如当需要在同一应用程序中使用程序集的两个或更多的版本时。通过使用外部程序集别名,来自每个程序集的命名空间可以在由别名命名的根级别命名空间内包装,从而可在同一文件中使用。
/r:N1=a1.dll
/r:N2=a2.dll
这将创建外部别名 N1 和 N2。若要从程序中使用这些别名,则使用 extern 关键字引用它们。例如:
extern alias N1;
extern alias N2;
每一个外部别名声明都引入一个额外的根级别命名空间,它与全局命名空间平行,而不是在全局命名空间内。因此,来自每个程序集的类型就可以通过各自的、根源于适当的名空间别名的完全限定名来引用,而不会产生多义性。
示例:
namespace N
{
public class A {}
public class B {}
}
namespace N
{
public class B {}
public class C {}
}
{
N.A a; // Ok
N.B b; // Error
N.C c; // Ok
}
extern alias X;
extern alias Y;
{
// 使用::从别名中使用真实的命名空间
X::N.A a;
X::N.B b1;
Y::N.B b2;
Y::N.C c;
}
http://www.cnblogs.com/hunts/archive/2007/01/12/619008.html
c# 参考之命名空间关键字:namespace、using_c#应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » c# 参考之命名空间关键字:namespace、using_c#应用
相关推荐
-      利用c#远程存取access数据库_c#应用
-      c# 3.0新特性系列:隐含类型var_c#教程
-      c#动态生成树型结构的web程序设计_c#应用
-      论c#变得越来越臃肿是不可避免的_c#应用
-      用c#监控并显示cpu状态信息_c#应用
-      c#中实现vb中的createobject方法_c#应用
-      photoshop给花瓶打造彩绘效果_photoshop教程
-      使用c#创建sql server的存储过程_c#应用