12 2012 档案

摘要:1. 类型对象 首先看如下代码: class Program { static void Main(string[] args) { List<object> objs = new List<string>(); Console.ReadKey(); } }以上代码在C#编译器中会报错,错误是类型不匹配... 阅读全文
posted @ 2012-12-24 16:24 self.refactoring 阅读(373) 评论(0) 推荐(0)
摘要:1. 初识泛型泛型是指在定义一个类型的时候,不用将该类型所操作的对象的类型确定,而是交给调用者来确定。该类型的实现只是实现一些通用的行为。例如:public class Util<T>{ public void PrintContent(T content) { Console.WriteLine(content.ToString()); }}代码定义了一个泛型类,其中"T"是该泛型类的类型参数.用它来代表将来可能要操作的对象的类型。而在该类型的实现中,我们可以赋予一些通用的行为。比如此处的PrintContent.这种定义了类型... 阅读全文
posted @ 2012-12-20 15:16 self.refactoring 阅读(385) 评论(0) 推荐(0)
摘要:其实操作符重载没怎么用过,之前还觉得是个很神秘的东西。CLR本身是没有操作符这一说的,操作符经过编译器编译后会生成对某个方法的调用。(某些基元类型除外,比如两个int型相加,编译器会直接生成add指令。)而我们对操作符的重载,则会被编译器编译成类型的一个方法。举例说明:public class Man{ public string Name { get; set; } public int Age { get; set; }}public class Women{ public string Name { get; set; } publ... 阅读全文
posted @ 2012-12-04 15:55 self.refactoring 阅读(340) 评论(0) 推荐(0)
摘要:在读这一节的类容之前,我觉得构造函数我都用了至少几千上万遍了,还会有什么新鲜的东西吗?经过仔细的阅读这一节,发现这样一个小小的主题,我不知道的并且对我们写程序至关重要的原来还有这么多... 1. 并不是所有新对象的创建都需要用到构造函数 Object类型定义了一个实例方法:MemberwiseClone,该方法的功能是为新对象分配内存,然后将当前实例进行浅拷贝到新的内存块中。这个过程便不会调用构造函数。 2. 便捷的内联成员初始化 首先贴一段我写了无数遍的代码:classPerson{privatestring_name="Jensen";privateint_age=26 阅读全文
posted @ 2012-12-02 21:01 self.refactoring 阅读(395) 评论(0) 推荐(0)