别名指示符是什么


Posted in 面试题 onOctober 08, 2012
通过别名指示符我们可以为某个类型起一个别名
主要用于解决两个命名空间内有同名类型的冲突或避免使用冗余的命名空间
别名指示符在所有命名空间最外层定义,作用域为整个单元文件。如果定义在某个命名空间内,那么它只在直接隶属的命名空间内起作用
示例:
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

Tags in this post...

面试题 相关文章推荐
什么是数组名
May 10 面试题
简述数组与指针的区别
Jan 02 面试题
经典c++面试题四
May 14 面试题
星空联盟C# .net笔试题
Dec 05 面试题
linux面试题参考答案(2)
Dec 06 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
May 03 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
Nov 04 面试题
什么是封装
Mar 26 面试题
Servlet方面面试题
Sep 28 面试题
JPA的优势都有哪些
Jul 04 面试题
如何理解transaction事务的概念
May 27 面试题
DELPHI面试题研发笔试试卷
Nov 08 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
Jul 11 #面试题
如何手工释放资源
Dec 15 #面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
Aug 10 #面试题
P/Invoke是什么
Jul 31 #面试题
C#如何判断当前用户是否输入某个域
Dec 07 #面试题
StringBuilder和String的区别
May 18 #面试题
explicit和implicit的含义
Nov 15 #面试题
You might like
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python变量和数据类型详解
2017/02/15 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
高二生物教学反思
2014/01/27 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
房地产活动策划方案
2014/05/14 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
教育实习指导教师评语
2014/12/31 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
Go Plugins插件的实现方式
2021/08/07 Golang