演员之间有什么区别:(A)x和x是A?
这个问题在这里已经有了答案:
as运算符就像一个演员操作。 但是,如果转换不可行,则返回null而不是引发异常。
您可以使用as运算符在兼容的引用类型或可为空的类型之间执行某些类型的转换。
考虑下面的例子:
expression as type
该代码等同于下面的表达式,只是表达式变量只被计算一次。
expression is type ? (type)expression : (type)null
请注意 ,as运算符仅执行参考转换,可空转换和装箱转换。 as运算符不能执行其他转换,例如用户定义的转换,而应该使用转换表达式来执行转换。
请参阅:(C#参考)
通过做(A)x
你正在做一个明确地尝试和施放的演员,如果它不能施展,会有一个例外。
如果您使用的as
它要么投或为null
。
但是,您有自己需要的所有示例代码以便自己尝试,以便在向我们询问您所陈述的代码将要执行的操作之前,您可以尝试使用此代码。
第一个试图立即转换,第二个实际检查x是否是A型。
链接地址: http://www.djcxy.com/p/73741.html上一篇: What is a difference between casts: (A) x and x as A?
下一篇: C# cast options, is there any difference other than syntax?