别名指示符是什么?

C#

通过别名指示符我们可以为某个类型起一个别名

主要用于解决两个命名空间内有同名类型的冲突或避免使用冗余的命名空间

别名指示符在所有命名空间最外层定义,作用域为整个单元文件。如果定义在某个命名空间内,那么它只在直接隶属的命名空间内起作用

示例:

Class1.cs:

using System;

using System.Collections.Generic;

using System.Text;

namespace com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01

{

class Class1

{

public override string ToString()

{

return “com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01′s Class1″;

}

}

}

Class2.cs:

using System;

using System.Collections.Generic;

using System.Text;

namespace com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02

{

class Class1

{

public override string ToString()

{

return “com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02′s Class1″;

}

}

}

主单元(Program.cs):

using System;

using System.Collections.Generic;

using System.Text;

//使用别名指示符解决同名类型的冲突

//在所有命名空间最外层定义,作用域为整个单元文件

using Lib01Class1 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;

using Lib02Class2 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02.Class1;

namespace Example19

{

namespace Test1

{

//Test1Class1在Test1命名空间内定义,作用域仅在Test1之内

using Test1Class1 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;

class Class1

{

//Lib01Class1和Lib02Class2在这可以正常使用

Lib01Class1 tmpObj1 = new Lib01Class1();

Lib02Class2 tmpObj2 = new Lib02Class2();

//TestClass1在这可以正常使用

Test1Class1 tmpObj3 = new Test1Class1();

}

}

namespace Test2

{

using Test1Class2 = com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01.Class1;

class Program

{

static void Main(string[] args)

{

//Lib01Class1和Lib02Class2在这可以正常使用

Lib01Class1 tmpObj1 = new Lib01Class1();

Lib02Class2 tmpObj2 = new Lib02Class2();

//注意这里,TestClass1在这不可以正常使用。

//因为,在Test2命名空间内不能使用Test1命名空间定义的别名

//Test1Class1 tmpObj3 = new Test1Class1();

//TestClass2在这可以正常使用

Test1Class2 tmpObj3 = new Test1Class2();

Console.WriteLine(tmpObj1);

Console.WriteLine(tmpObj2);

Console.WriteLine(tmpObj3);

Console.ReadLine();

}

}

}

}
结果:
com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01′s Class1
com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib02′s Class1
com.nblogs.reonlyrun.CSharp25QExample.Example19.Lib01′s Class1

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:
旧一篇:

你有答案? 你对以上面试题有意见? 你想发表你的见解? 写下来吧!你的分享将会让很多人受益!

相关面试题

·C#关于String的面试题
·C#程序设计笔试题
·C#方向高级开发人员面试时应该事先考虑的问题
·C#面试题(语法,附答案)
·C#面试题

版权声明:本站大部分内容为原创! 另有少部分内容整理于网络,如需转载本站内容或关切版权事宜请联系站长。未经允许,严禁复制转载本站内容,否则将追究法律责任。 本站欢迎与同类网站建立友情链接,请联系QQ:176687814