别名指示符是什么


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...

面试题 相关文章推荐
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
Sep 08 面试题
是什么让J2EE适合用来开发多层的分布式的应用
Jan 16 面试题
iostream与iostream.h的区别
Jan 16 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
程序集与命名空间有什么不同
Jul 25 面试题
.NET程序员的数据库面试题
Oct 10 面试题
介绍一下linux文件系统分配策略
Nov 17 面试题
Linux管理员面试经常问道的相关命令
Apr 29 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
remote接口和home接口主要作用
May 15 面试题
final, finally, finalize的区别
Mar 01 面试题
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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python逐行读取文件内容的三种方法
2014/01/20 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
在vscode中配置python环境过程解析
2019/09/28 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
三星美国官网:Samsung美国
2017/02/06 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
Linux操作面试题
2015/02/11 面试题
赔偿协议书范本
2014/09/12 职场文书
工程移交协议书
2016/03/24 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
MySQL中in和exists区别详解
2021/06/03 MySQL
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS