3、提供了对类型兼容性的判断,从而使得类型转换控制在安全的范畴,提供了灵活的类型转换控制。is的规则如下:·检查对象类型的兼容性,并返回结果,true或者false;·不会抛出异常;·如果对象为null,则返回值永远为false。其典型用法为: 1object o = new object(); 2 3class A 4 5{ 6 7} 8 9if (o is A) //执行第一次类型兼容检查1011{1213 A a = (A) o; //执行第二次类型兼容检查1415}1617 as的规则如下:·检查对象类型的兼容性,并返回结果,如果不兼容就返回nul
4、l;·不会抛出异常;·如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。其典型用法为: 1object o = new object(); 2 3class B 4 5{ 6 7} 8 9B b = o as B; //执行一次类型兼容检查1011if (b != null)1213{ 1415 MessageBox.Show("b is B's instance.");1617}18194.结论纵上比较,is/as操作符,提供了更加灵活的类型转型方式,但是as操作符在执行效率上更胜一筹,我们在实际的编程中应
6、字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。定义方法为: public interface System.IComparable { int CompareTo(object o); } public class TestCls: IComparable { public TestCls() { } private int _value; public int Value {get { return
7、 _value; }set { _value = value; } } public int CompareTo(object o) {//使用as模式进行转型判断TestCls aCls = o as TestCls;if (aCls != null){//实现抽象方法return _value.CompareTo(aCls._value);} } }·什么是抽象类?抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密