CLR 最重要的一个特性就是类型安全。CLR 在运行时总能知道一个对象的类型。我们也可以用过调用 GetType方法来得到对象的准确类型。因为该方法是一个虚方法。所以我们不可能利用它来篡改一个类型的信息。 例如:我们不可能重写 Employee 类的 GetType方法使之返回一个SpaceShut ...
分类:
编程语言 时间:
2016-08-19 13:10:23
阅读次数:
163
Partial 部分方法顾明思议是方法的一部分,不完整的,在ide编译时候,会将所有部分方法加载到一起统一编译,如果分部方法没有被实现,编译器就不会、对他们进行编译。 局部类型的限制 (1) 局部类型只适用于类、接口、结构,不支持委托和枚举。(2) 同一个类型的各个部分必须都有修饰符 partial ...
分类:
其他好文 时间:
2016-08-14 14:32:27
阅读次数:
138
接口1.接口只提供方法规约,不提供方法体;2.接口中的方法不能用关键字修饰;3.接口里不能有接口和变量;4.接口里的方法在子类中必须全部实现;5.接口可以实现多重继承;抽象类1.抽象类可以从接口继承;2.抽象类中的实体方法在子类中不可以重写,只可以被引用;3.抽象类中的抽象方法不可以有方法体,抽象类 ...
分类:
其他好文 时间:
2016-08-07 18:49:31
阅读次数:
192
抽象类定义:它的作用就是产生子类的同时给于子类一些特定的属性和方法。abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的父类。标记为抽象或包含在抽象类中的成员必须通过从抽象类的子类来实现。特性:1.抽象类不能被实例化;2.抽 ...
分类:
其他好文 时间:
2016-08-07 18:33:00
阅读次数:
127
virtual 关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。 例如,此方法可被任何继承它的类重写。 (C#参考) 虚拟成员的实现可由派生类中的重写成员更改 调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员, 如果没有派生类重写该成员, ...
多态是面向对象最重要的特征之一,它能使得单一的类变得更多种类。简单来说多态主要有三种形式,分别是虚方法、接口和抽象类,三者各有特点,下面是代码对他们的描述: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //1.virtual ...
分类:
其他好文 时间:
2016-08-02 23:41:42
阅读次数:
614
1. 重 载(Overload ) 和覆写(override) 的区别 答: 方法重载:当类包含两个名称相同但签名不同( 方 法名相同, 参数列表不相同) 的方法时发生方法重载。用方法重载来提供在语义上完成相同而功能不同的方 法。覆写:在类的继承中使用,通过覆写子类方法可以改 变父类虚方法的实现。 ...
分类:
Web程序 时间:
2016-07-21 23:50:59
阅读次数:
574
多态分三种:1.虚方法 2.抽象类 3.接口 1、虚方法1、将父类的方法标记为虚方法 ,使用关键字 virtual,这个函数可以被子类重新写一个遍。 如: class Program { static void Main(string[] args) { Chinese cn1 = new Chin ...
修饰符:public : 公共的,引用命名空间即可随意访问,访问权限最高;private : 私有的,只有在声明它的类和结构中才可以访问,访问权限最低; Internal : 内部的,同一个程序集中所有的类都可以访问,程序集就是命名空间, 访问权限次最高,这个访问修饰符是默认的;Protected ...
分类:
其他好文 时间:
2016-07-05 20:51:25
阅读次数:
204
接口、抽象类、抽象方法、虚方法: 这四个名词时非常容易混淆的: 首先说一下接口 与抽象类 的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的。 2.抽象类中的抽象方法和接口方法一样,都不能有方法体 不同点: 1.抽象类里可以有字段,接口中不能有字段. 2.抽象类中的普通方法可以有 ...
分类:
其他好文 时间:
2016-06-30 23:22:19
阅读次数:
187