第1个回答 2019-10-30
as是用于检查在兼容的引用类型之间执行某些类型的转换,注意只有引用类型才可以,如果兼容as会返回对同一个对象的一个非null的引用,否则返回一个null。
简单的说就是,如果一个对象可以被转换成as后面的那个类型,那么就会返回这个类型的对象,否则就会得到一个null。
需要注意的是只有引用类型才可以用as,比如:
object
a
=
11;
int
b
=
a
as
int;
//这样的用法是错误的,因为int类型是值引用
第2个回答 2008-12-22
19.C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的操作符。as操作符与is操作符非常相似,但它更富有“进取心”:如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则,它把变量引用设置成null。
第3个回答 推荐于2018-03-28
首先,BS复制的
as是用来类型转换的
比如:两个类:A和B
B b = new B();
//不用as,进行强制转换,如果类型不匹配,会引发转换异常
A a = (A) b;
//使用as,类型不匹配,不会引发异常,会返回一个null,此时 a = null
A a = b as A;本回答被提问者和网友采纳
第4个回答 2020-07-13
父类引用指向子类对象cir是Circle类型,cir2也是Circle类型。
其中shp=cir这不是赋值这是一个指向操作。也就c++中所说的指针。
你想一下shp可以等于null为什么就不能等于cir呢?