如何实现别名啊?

问题描述

比如我想在一个命名空间中添加一个别名我引用这个空间的时候就可以用这个别名

解决方案

解决方案二:
http://msdn.microsoft.com/en-us/library/aa664765(v=vs.71).aspx
解决方案三:
引用1楼devmiao的回复:

http://msdn.microsoft.com/en-us/library/aa664765(v=vs.71).aspx

这个不是啊
解决方案四:
就比如int的别名是怎么实现的?
解决方案五:
关于类别名的问题,楼上的回答是正确的usingConsoleAlias=System.Console;//注意System.Console是个类,不是一个命名空间classProgram{staticvoidMain(string[]args){ConsoleAlias.WriteLine("HelloWorld!");//这里使用的是类别名}}然后我理解,你想要的效果是在类库中定义一个类型,你实际定义的类型名称和你最终想让用户看到的类型名称不一样,而之前的解决方案的效果不是这样的,之前的解决方案中用户还是知道你定义的类型名称的。首先,这个需求本身不被语言支持,然后,其实你可以通过代理或者其他方法来隐藏你的类型。关于Int32和int是同一种类型的定义不是语言支持的,我理解int和Int32是在预编译器中实现的,在C#开发语言中是不能实现的。
解决方案六:
引用4楼phoenix8343_cn的回复:

关于类别名的问题,楼上的回答是正确的usingConsoleAlias=System.Console;//注意System.Console是个类,不是一个命名空间classProgram{staticvoidMain(string[]args){ConsoleAlias.WriteLine("HelloWorld!");//这里使用的是类别名}}然后我理解,你想要的效果是在类库中定义一个类型,你实际定义的类型名称和你最终想让用户看到的类型名称不一样,而之前的解决方案的效果不是这样的,之前的解决方案中用户还是知道你定义的类型名称的。首先,这个需求本身不被语言支持,然后,其实你可以通过代理或者其他方法来隐藏你的类型。关于Int32和int是同一种类型的定义不是语言支持的,我理解int和Int32是在预编译器中实现的,在C#开发语言中是不能实现的。

我的意思是,比如有个namespaceA和一个namespaceB。我在A中声明一个别名,如何能在B中使用这个别名
解决方案七:
问题没描述清楚给什么东西定义别名?是给命名空间定义别名,还是给类定义别名,还是给变量定义别名,还是给函数定义别名??
解决方案八:
引用3楼ycs89412的回复:

就比如int的别名是怎么实现的?

在文件头部加上usingintAlias=System.Int32;然后在代码里就可以用intAlias来代替int了如intAliasi=0;
解决方案九:
可以在文件头部加上usingusing别名=原完整的空间名
解决方案十:
引用6楼Z65443344的回复:

问题没描述清楚给什么东西定义别名?是给命名空间定义别名,还是给类定义别名,还是给变量定义别名,还是给函数定义别名??

这个有区别吗……
解决方案十一:
引用7楼gxingmin的回复:

Quote: 引用3楼ycs89412的回复:
就比如int的别名是怎么实现的?

在文件头部加上usingintAlias=System.Int32;然后在代码里就可以用intAlias来代替int了如intAliasi=0;

我的意思是,比如有个namespaceA和一个namespaceB。我在A中声明一个别名,如何能在B中使用这个别名是在B中引用就像int一样,我并没有声明int的别名,但我却可以用
解决方案十二:
引用8楼yuekunge的回复:

可以在文件头部加上usingusing别名=原完整的空间名

我的意思是,比如有个namespaceA和一个namespaceB。我在A中声明一个别名,如何能在B中使用这个别名是在B中引用就像int一样,我并没有声明int的别名,但我却可以用
解决方案十三:
你是没声明int的别名,但是int是在system命名空间下的你引用了system,就可以直接访问system下的类了而在system下给int32起别名叫int,你也就可以直接用了
解决方案十四:
引用11楼ycs89412的回复:

Quote: 引用8楼yuekunge的回复:
可以在文件头部加上usingusing别名=原完整的空间名

我的意思是,比如有个namespaceA和一个namespaceB。我在A中声明一个别名,如何能在B中使用这个别名是在B中引用就像int一样,我并没有声明int的别名,但我却可以用

你是没声明int的别名,是因为int是在system命名空间下的程序默认是引用了system的,所以就可以直接访问system下的类了而在system下给int32起别名叫int,所以你也就可以直接用了。你也完全另外封装一个DLL了,里面就一个你其他类的属性了···
解决方案十五:
那是需要先自己封装吧
解决方案:
引用13楼yuekunge的回复:

Quote: 引用11楼ycs89412的回复:
Quote: 引用8楼yuekunge的回复:
可以在文件头部加上usingusing别名=原完整的空间名

我的意思是,比如有个namespaceA和一个namespaceB。我在A中声明一个别名,如何能在B中使用这个别名是在B中引用就像int一样,我并没有声明int的别名,但我却可以用

你是没声明int的别名,是因为int是在system命名空间下的程序默认是引用了system的,所以就可以直接访问system下的类了而在system下给int32起别名叫int,所以你也就可以直接用了。你也完全另外封装一个DLL了,里面就一个你其他类的属性了···

对就这个,我怎么能把别名封装在一个DLL或者一个命名空间中啊?我在命名空间A中声明一个别名,但是在命名空间B中无法引用这个别名啊~
解决方案:
引用14楼tianlongfeifei的回复:

那是需要先自己封装吧

对就这个,我怎么能把别名封装在一个DLL或者一个命名空间中啊?我在命名空间A中声明一个别名,但是在命名空间B中无法引用这个别名啊~
解决方案:
引用12楼Z65443344的回复:

你是没声明int的别名,但是int是在system命名空间下的你引用了system,就可以直接访问system下的类了而在system下给int32起别名叫int,你也就可以直接用了

对就这个,我怎么能把别名封装在一个DLL或者一个命名空间中啊?我在命名空间A中声明一个别名,但是在命名空间B中无法引用这个别名啊~
解决方案:
你在B中需要先引用A啊
解决方案:
添加引用啊·······

时间: 2024-08-02 15:40:49

如何实现别名啊?的相关文章

360安全浏览器-热键网址和网址别名

  热键网址: 简单理解就是可以快捷访问的网址.您可以通过按下快捷键(F1-F12)来访问您自行设置的快捷网址. 例如:您可以自定义F1键到se.360.cn,以后任何时候按下F1则可以快速访问se.360.cn 网址别名: 地址栏中输入快捷词,可以访问它对应的网址,这样常用的网站就不用输入全称了. 例如:自定义快捷词gg,对应网址www.google.com,以后可以在地址栏输入gg来访问www.google.com 注意:每个"热键网址"和"网址别名"可以同时对

sql子查询中列别名在主查询中无效

问题描述 sql子查询中列别名在主查询中无效 CREATE PROCEDURE dbo.query_test( @i_begin_time varchar(128) IN, /* 开始时间 / @i_end_time varchar(128) IN, / 结束时间 / @i_bussiness_tpe varchar(512) IN, / 类型 ) as declare @v_sql varchar(16384)/* 定义 需要执行的sql / declare @Rtime varchar(12

java的“别名”以及clone机制

什么是别名?用个简单的例子说明public class Aliases{ int i; public Aliases() { i=1; } public Aliases(int i) { this.i=i; } public static void main(String args[]) { Aliases A=new Aliases(); Aliases B=A; //A和B指向了同一个对象,A和B互为别名 System.out.println("A.i and B.i:"+A.i+

Swift语言指南(七) Swift语言基础:布尔值和类型别名

布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false).Swift提供了两个布尔常量值:true,false: 1 let orangesAreOrange(橙子是橙子) = true 2 let turnipsAreDelicious(芜菁很美味) = false orangesAreOrange和turnipsAreDelicious被推断为布尔类型,因为它们的值被布尔字面量给初始化了.与前文提到的Int或

关于php中的别名

PHP中exit和die有什么区别? 两个有区别,die是退出并释放内存,exit是退出但不释放内存. 这个解释显然是错的,我们以前都看过手册中说,两者只是别名关系,除此之外完全一样. 不过我还是很好奇,决定从源码中找找线索,看看php是如何处理的这个"别名". 首先要清楚一点,die和exit都是语言结构而非函数.很多初学者总搞不清语言结构和函数的区别,用通俗点的话讲,语言结构可以理解为语法本身的一种标识.像+.-.*./这些也都是语言结构,if.else.for.while,这些都

http的路径别名、虚拟主机及用户认证

其存在在/etc/httpd/conf/目录中httpd.conf文件中, 其定义的语法格式为Alias /URL "local_path" 大概意思就是用一个简单的路径来映射长路径: 如图中, /icons/映射的路径为 "/var/www/icons/"  例子: [root@Cyz ~]# mkdir -pv /bbs/forum //创建路径 mkdir: created directory `/bbs' mkdir: created directory `

C++必知必会(五) 引用是别名而非指针

引用(reference)是一个现有对象的别名.用对象来初始化引用之后,那么对象的名字或引用的名字都可以用于指向(refer to)该对象: int a = 12; int &ra = a; --ra; // a == 11; a = 10; // ra = 10; int *ip = &ra; 人们常常会将引用和指针相混淆,原因大概在于C++编译器通常采用指针的方式实现引用,但引用其实不是指针,其行为和指针并不相同. 在引用和指针之间存在三大区别:其一,不存在空引用(NULL Refer

java别名问题

"别名"意味着多个句柄都试图指向同一个对象,就象前面的例子展示的那样.若有人向那个对象里写入一点什么东西,就会产生别名问题.若其他句柄的所有者不希望那个对象改变,恐怕就要失望了.这可用下面这个简单的例子说明:   //: Alias1.java // Aliasing two handles to one object public class Alias1 { int i; Alias1(int ii) { i = ii; } public static void main(Stri

Oracle数据库去除别名的方法

本人曾经用Personal Oracle+Developer2000开发了一些程序,当移植到ORACLE FOR NT的时候发现有些功能出现了出错提示.经研究发现原来是用户没有能正常连接.由于在developer2000连接personal oracle时不需要别名(alias),直接写入用户名/密码则可. 而在OracleFOR NT中则必须在连接用户则必须设置别名,在程序中用user/password@alias来连接用户.所以以前写的user/password的形式无法正常连接用户.由于改

delphi实现动态创建别名

对于BDE会话期对象来说,BDE别名特别重要,许多方法都需要传递一个数据库的别名作为参数.TSession提供了管理BDE别名的功能. 但是作者往往等到要发布程序时才发现,你的程序由于找不到别名而无法运行,必须在一台已经装了BDE管理程序的机上才能用,你一定非常失望.不要紧,只要在程序中加入以下语句,你的程序就又可以执行. AddAlias用于为Paradox.dBase或文本创建别名,不需要连接参数,只需指定一个路径和默认的驱动程序. AddStandardAlias函数则需要传递三个参数,N