摘要: 关于依赖注入 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。应用控制反转,对象在被创建的时候,由一个调控系统内所 有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这 个责任的反转。 控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。相对而言对于.Net开发者来说听到得更多的是依赖注入这个名词。实现依赖注入的框架有很多,如 Spring.Net,Unity,Ninject等等,基... 阅读全文
posted @ 2014-04-02 15:51 fireshadow23 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 对于一些现成的类,如果我们想添加一些新的方法来完善功能,但是不想改变已有的封装,也不想使用派生类,那么该怎么办呢?这里我们可以使用扩展方法。一见钟情--初识扩展扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。我们首先来看个例子,有个直观的认识。一个现有的类User:public class User { string _name; public User(string Name) { _name = Name; } public string Name { get { return _name; } set { this._name = val 阅读全文
posted @ 2014-04-02 15:35 fireshadow23 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 对于操作符,我们并不陌生,例如+,-,*,%等二元操作符,以及++,!等一元操作符。但是对于非基元类型,我们需要通过一些自定义方法才能使用这些操作符。今天主要和大家分享关于操作符重载和转换操作符的知识。一、操作符重载方法CLR并不知道操作符,操作符重载对于它来说只是一些方法而已。但是CLR规定了语言应该如何公开操作符重载,每种编程语言自行决定是否支持操作符重载。定义操作符重载方法注意两点:CLR规范要求操作符重载方法必须是 public static 类型。C#要求操作符重载方法必须有一个参数的类型和当前定义这个方法的类型相同。否则会产生编译错误 操作符重载实例我们为非基元类型Complex重 阅读全文
posted @ 2014-04-02 14:48 fireshadow23 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 静态类是一些不能实例化的类,它的作用是将一些相关的成员组合到一起,像我们常见的Math, Console等。静态类由static关键字标识,静态类成员也只能是static类型。Static关键字只能用于修饰类,不能修饰值类型。C#编译器对静态类的限制:1. 基类只能为System.Object。因为继承是针对对象而言的,静态类不能创建实例,所以从其他类派生没有实际意义。2. 静态类不能实现接口。3. 静态类的成员只能为static类型,可以定义静态的方法,属性,事件等。publicstaticclassStaticClass{privatestaticstring_name;publicsta 阅读全文
posted @ 2014-04-02 14:36 fireshadow23 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 对于构造器,大家应该都不陌生,它主要是用来进行初始化状态的。包括实例构造器和类构造器两种,先给大家看个实际的例子。class Dog : Animal { privatestring _name; privateint _age; publicstring Name//属性 { get { return _name; } set { _name = value; } } publicint Age { get { return _age; } set { _age = value; } } publicstaticstring type ="动物";//静态字段 publi 阅读全文
posted @ 2014-04-02 14:28 fireshadow23 阅读(216) 评论(0) 推荐(0) 编辑