正说using指令 当兰州的的张志国回到老家时,周围的人们就不管他叫兰州张志国了(河北张志国依然存在),但在周围的人的眼里似乎世界上只有一个张志国那就是兰州张志国using指令 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 (来自中文MSDN,晕)
对于using指令人们总一些错误的认识,现在先看下边的例子让我们来了解一下它的本质 这个例子是从第三讲的例子改来的 新建一个控制台项目在这个项目中有两个源文件 一个是Program.cs以下是它的内容using Lanzhou;class Program {
static void Main(string[] args) { System.Console.WriteLine("大家好,俺是农民工."); //注意下一行,没有了那两个"Lanzhou." Zhangzhiguo Zhangzhiguo1 = new Zhangzhiguo(); Zhangzhiguo1.Gongzi = 1100; System.Console.WriteLine("兰州张志国的工资:" + Zhangzhiguo1.Gongzi); Hebei.Zhangzhiguo Zhangzhiguo2 = new Hebei.Zhangzhiguo(); Zhangzhiguo2.Gongzi = 1200; System.Console.WriteLine("河北张志国的工资:" + Zhangzhiguo2.Gongzi); //NND 这年头农民工拎着脑袋干活,工资也太低了,网络直不是好东西让人学会骂人了。 } }
一个是Class1.cs 以下是它的内容namespace Lanzhou { class Zhangzhiguo { public int Gongzi; } }
namespace Hebei { class Zhangzhiguo { public int Gongzi; } }
Ctrl+F5 运行一下和第三讲的结果一模一样只是给兰州张志国长了一百元工资,呵呵
看看有什么变化,在Program.cs文件的开头多了一名using Lanzhou这句话的意思就是在说在本文件的内容中凡是使用了using 后边的指明的命名空间时均可以省略 所以在一个C#源文件的开头可以有多行using,而且这些using 指令只能放在源文件的开头 C#源文件开头写的那一大堆using 仅仅是为让我们在打程序时少打些命名空间,看我前几讲的例子中好多都没有using 不都运行的好好的吗。因为我们的每个程序都会引用许多的系统类库,而系统类库有着复杂冗长的命名空间,所以在C#源文件开头打上一大堆什么using 也是为了我们能更方便的使用系统类库. 如果在文件开头using的多个命名空间中有同名的类,那在使用这些类时还要打全类的命名空间,否则将会出现错误,这是当然了,编译器不会知道你到底使用的是那个类。 所以认为using是为了引用类库,那是大错特错了,有些学过C或C++语言的人误以为using 和#include 是一回事,这也是无稽之谈,其实C#语言中"using" 和C++语言中的"using namespace" 到是十分的相同(嘿嘿!本人还对C++语言还有过深入的研究) using 指令还有一个功能就是为命名空间创建别名。 举例如下:using SX = System.Xml;这条指令的意思就是在本文件中凡是用到SX命令空间编译器都会认为是Sytem.Xml 命名空间,SX是System.Xml的别名 看下边的例子using S = System; class Program { static void Main(string[] args) { S.Console.WriteLine("大家好我是农民工");//本行中S等同于System } } 在工地,人们管你叫某某某,但在家里你老婆管你叫“朱”,“朱”是你的一个别名,听了这话没结婚的听众生气了,但结婚的听众都会心的笑了,在北方90%的女士都管他们的老公叫做“朱”(那10%不叫“朱”的都有潜在的离婚危险,想婚姻美满吗,让你的老婆叫你“朱”吧),我老婆不管我叫做朱,而是叫我“小朱”.管我儿子叫做“小小朱” 以上说的是using 指令的用法 在C#中还有一个using 语句 以后再表. 洗个澡去.明儿见
本文首发于 http://yaotong.cnblogs.com转载于:https://www.cnblogs.com/HappyQQ/archive/2008/02/16/1070816.html
相关资源:数据结构—成绩单生成器