`
sakakokiya
  • 浏览: 488397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

别名指示符是什么?

 
阅读更多
通过别名指示符我们可以为某个类型起一个别名
主要用于解决两个命名空间内有同名类型的冲突或避免使用冗余的命名空间
别名指示符在所有命名空间最外层定义,作用域为整个单元文件。如果定义在某个命名空间内,那么它只在直接隶属的命名空间内起作用
示例:
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#基础概念二十五问

    1.静态成员和非静态成员的区别?...19.别名指示符是什么? 20.如何手工释放资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射?

    C#的25个问题(内附代码示例)

    1.静态成员和非静态成员的区别?...19.别名指示符是什么? 20.如何手工释放资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别?23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射?

    常见 ASP.NET 概念(开源,说明)

    19.别名指示符是什么? 20.如何释放非托管资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射? shadom@foxmail.com

    C#基础概念.doc

    C#基础概念: ...19、别名指示符是什么? 20、如何释放非托管资源? 21、P/Invoke是什么? 22、StringBuilder 和 String 的区别? 23、explicit 和 implicit 的含义? 24、params 有什么用? 25、什么是反射?

    c#基础学习问答c#基础学习问答

    c#学习问答 ...19.别名指示符是什么? 20.如何释放非托管资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射?

    你必须知道的C#的25个基础概念(附源码)

    别名指示符是什么? 20.如何释放非托管资源? 21.P/Invoke是什么? 22.StringBuilder 和 String 的区别? 23.explicit 和 implicit 的含义? 24.params 有什么用? 25.什么是反射? 以下是我做的一份参考答案(C# ...

    linux-gittify一个多彩的Bash提示符自定义的Git别名

    gittify - 一个多彩的Bash提示符 自定义的Git别名

    【大厂面试必备】Linux面试题和答案,以及详细解析!

    30、通过什么命令指定命令提示符? 31、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加? 32、通过什么命令查找执行命令? 33、怎么对命令进行取别名? 34、du 和 df 的定义,以及区别? 35、awk 详解...

    fishy-drupal:面向 Drupal 开发人员的 oh-my-fish 主题。 将 git branch、git status 和 drush 别名放入命令提示符

    可疑的drupal 插件到。特征显示当前工作目录,缩写(默认鱼样式) 显示活动的 git 分支,如果有的话显示活动的 drush 站点别名(如果有) 如果当前 git 目录是“脏的”,则显示黄色 ✗

    Linux教程 Shell精华文章.chm

    Linux教程 Shell精华文章.chm ...改变提示符 进程控制(Job control) 如何用户化配置你的bash shell 另外你还将看到一些最常用的bash命令和内存变量的用法,读完本文后你将能更快和更有效地使用bash。

    第三章 Linux基本命令操作

    Linux 终端介绍、 Shell 提示符、 Bash 基本诧法 3.1.1 登彔 Linux 终端 认识终端: 在 Linux 系统中,计算机显示器通常被称为控制台终端(Console)。它仺真了类型为 Linux 的一种终 端(TERM=Linux),幵且有一些“讴...

    Paizo运动工具「Paizo Campaign Tools」-crx插件

    下划线([u] [/ u]),颜色([color = red] [/ color])和代码([code] [/ code])*“需要发布”指示符(允许您将广告系列标记为需要您发帖;在该广告系列中发帖时会自动重置,也可以通过按钮手动进行切换。 *标题...

    DevBooks:将创建一个社交网络以展示有关PHP,HTML,JavaScript,CSS的知识

    通过提示符/终端转到项目文件夹,然后执行: 作曲家安装 然后等一下。 设定值 所有配置和应用程序文件都在src文件夹中。 数据库和URL设置位于src / Config.php文件中 正确配置BASE_DIR常量很重要: const BASE_...

    yechiels-dotfiles:我的dotfile配置

    .prompt包含bash提示符(一个表情符号,指示上一个提示符是否成功,计算机名称和主机,当前工作目录的路径以及当前git分支)。 .aliases包含bash别名 .git_aliases包含git别名 用法 要使用这些文件,请将仓库下载...

    2009达内SQL学习笔记

    包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用) 当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1...

    AdminLTE_MVC_B7Web:#AdminLTE-适用于MVC标准的管理面板

    通过提示符/终端转到项目文件夹,然后执行: 作曲家安装 然后等一下。 设定值 所有配置和应用程序文件都在src文件夹中。 数据库和URL设置位于src / Config.php文件中 正确配置BASE_DIR常量很重要: const BASE_...

    数据库设计经验谈.pdf

    6 第 2 部分 - 设计表和字段 6 检查各种变化 6 采用有意义的字段名 6 采用前缀命名 6 标准化和数据驱动 6 标准化不能过头 7 Microsoft Visual FoxPro 报表技巧 7 不活跃或者不采用的指示符 7 使用角色实体定义属于某...

    语言程序设计课后习题答案

    什么是面向对象方法?这种方法有哪些特点? 解: 从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向...

Global site tag (gtag.js) - Google Analytics