请告诉我C#中的is和as关键字有什么区别
发布于 2010-09-24 19:04:15
is关键字检查其左侧的值是否为右侧类型的实例。例如:
if(obj is string)
{
...
}请注意,在这种情况下,您必须使用额外的显式强制转换来将obj转换为字符串。
as关键字用于强制转换可为nullable的类型。如果指定的值不是指定类型的实例,则返回null。例如:
string str = obj as string;
if(str != null)
{
...
}发布于 2010-09-24 19:02:36
我会说:在线阅读MSDN,但它是这样的:
is运算符检查对象是否与给定类型兼容,计算结果为布尔值: true或false。
as运算符永远不会抛出异常。
发布于 2015-10-04 07:46:35
Is运算符,一个强制转换,如果成功则返回true。如果强制转换失败,则返回false。使用它,您无法捕获转换后的变量。此运算符在检查if语句中的类型时最有用,而expressions.The is-cast仅在不需要进一步使用所产生的变量时才是理想的
就像演员阵容一样。有了它,我们可以获得性能,并避免在强制转换无效时出现异常。当无法进行强制转换时,返回Null。对于引用类型,建议使用as-cast。它既快又快,safe.We可以针对null测试结果变量,然后使用它。这消除了额外的强制转换
https://stackoverflow.com/questions/3786361
复制相似问题