你的位置:首页 > ASP.net教程

[ASP.net教程]C#一些小技巧


在C#实现类似Typedef的所有功能

Typedef这个关键字,是比较好用的东西,因为有时候我们需要使用一些别名来帮助我们记忆某些结构体或者类的共用。(个人觉得这是C与C++唯一能吸引我的东西)为了能够实现这个想法,我们可以使用下列方法。

1.使用using语句进行别名,这个方法适合针对结构体。

因为很多时候编程上需要做Win32平台相关的一些工作,比如我要读取一个Unicode字符,但C#并没有双字Word类型,如果我们要支持双字,那么就需要自己定义类或者结构体,但实际上在C++里面,双字实际上是unsigned short,也就是说我们可以用UInt 16来实现对Word关键字的支持,但这里有一个小小的纠结,那就是我知道Word是Unsigned Int16,但是能不能定义成Word呢?这样方便我们记忆啊。

但是有的,这时候我们只需要使用using语句就可以了。

做法是这样子的:

using Word=System.UInt16;

word w=16;

这样就可以使用Word关键字声明变量了。

2.使用泛型方法构建通用类

这个方法我倒是没试过,因为使用Typedef实际上只是为了对C++的基础类型进行兼容罢了,其实using可以将类进行别名,只不过使用泛型方法构建一个类的话,你可以重写他的运算符,XD

 

也贴一个原地址,但是全英文撒,看得懂可以自己看,看不懂我贴出译文

[原文] http://www.codeproject.com/Questions/141385/typedef-in-C

 

翻译图如下:(为了能够更贴近我们的理解,翻译的语句已经进行人工修饰,有些翻译不怎么容易通顺的地方已经摒弃,换作个人理解,如果觉得不好理解可以自行翻译原文)

 

(编辑了几次,突然发现我的博客园的版面不适合看图,无论我怎么编辑都不能找到合适的缩放大小,所以我这里放在百度盘里面,自行去取吧:http://pan.baidu.com/s/1dFyVbY5)

长图预警