02 2012 档案
摘要:一个类型定义一个索引器: public class Example { //定义一个索引器 private Int32 _str; public Int32 this[Boolean b] { get { return _str; } set { _str = value; } } }一个类型可以有多个索引器,如下: public class Example { //定义一个索引器 private Int32 _int; ...
阅读全文
摘要:.Net使用Name、Version、Culture、PublicToken四个属性来唯一标识一个程序集,而不同产品前三个属性(Name、Version和Culture)完全相同的情况是有可能发生的,如此一来,这唯一标识程序集的重任就落到PublicToken的头上了。强命名的程序集正是使用RSA来保证PublicToken的唯一性,因为在理论上,非对称算法RSA生成的公钥/私钥对不会重复。.Net正是通过在编译项目时将指定的公钥/私钥对写入程序集来保证其唯一性。Windows 中常常出现“DLL hell”问题的原因就是因为在进行软件升级或安装时,程序集不能唯一的标识而当前的程序集文件会替代
阅读全文
摘要:c#中操作符重载:class Test{public static Test operator + (Test arg1,Test arg2){...}}虽然CLR对操作符一无所知,但它却规范了编程语言应该怎样提供操作符重载,以使它们可以很容易地被不同的编程语言编写的代码所使用,每个编程语言自己决定是否支持操作符重载,以及如果提供,表达和使用它们的语法是怎样的,对于CLR来讲,操作符重载仅仅是一些方法而已。当编辑如果代码时,编辑器会产生一个名为op_Addition的方法定义;该方法定义条目上有一个specialname标记,表示这是一个"特殊"的方法。当编辑器(包括C#编
阅读全文