as 用于在兼容的引用类型之间执行转换
运算符类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常。
只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
但是 AS 不用在类型之间进行类型转化,不能应用在值类型数据
is 检查对象是否与给定类型兼容
如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。只考虑引用转换、装箱转换和取消装箱转换
new
1.用于创建对象和调用构造函数。
2.关键字可以显式隐藏从基类继承的成员。隐藏继承的成员意味着该成员的派生版本将替换基类版本。在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。使用 new 显式隐藏成员会取消此警告,并记录代之以派生版本这一事实。
通过继承隐藏名称采用下列形式之一:
引入类或结构中的常数、指定、属性或类型隐藏具有相同名称的所有基类成员。
引入类或结构中的方法隐藏基类中具有相同名称的属性、字段和类型。同时也隐藏具有相同签名的所基类方法。
引入类或结构中的索引器将隐藏具有相同名称的所有基类索引器。
对同一成员同时使用 new 和 override 是错误的,因为这两个修饰符在含义上相互排斥。使用 new 会 用同样的名称创建一个新成员并使原始成员变为隐藏的,而 override 则扩展继承成员的实现。
3.约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。当泛型类创建类型的新实例时,将此约束应用于类型参数