推荐答案
在C#中,is
和as
运算符用于类型检查和类型转换。
is
运算符用于检查对象是否与给定类型兼容。如果对象是给定类型或派生自给定类型,则返回true
,否则返回false
。as
运算符用于将对象转换为指定类型。如果转换成功,则返回转换后的对象;如果转换失败(即对象不是给定类型或派生自给定类型),则返回null
。
本题详细解读
is
运算符
is
运算符用于在运行时检查对象的类型是否与指定类型兼容。它的语法如下:
if (obj is TargetType) { // obj 是 TargetType 类型或其派生类型 }
示例代码
-- -------------------- ---- ------- ------ --- - ------- -------- -- ---- -- ------- - ---------------------- -- - ---------- - ---- - ---------------------- -- --- - ---------- -
在这个例子中,obj
是一个字符串对象,因此is
运算符返回true
,输出结果为"obj is a string."
。
as
运算符
as
运算符用于将对象转换为指定类型。如果转换成功,则返回转换后的对象;如果转换失败,则返回null
。它的语法如下:
TargetType result = obj as TargetType;
示例代码
-- -------------------- ---- ------- ------ --- - ------- -------- ------ --- - --- -- ------- -- ---- -- ----- - ----------------------------- ---------- - - ----- - ---- - ----------------------------- ---------- -
在这个例子中,obj
是一个字符串对象,因此as
运算符成功将其转换为string
类型,输出结果为"Conversion succeeded: Hello, World!"
。
区别与使用场景
is
运算符用于类型检查,通常用于条件判断中。as
运算符用于类型转换,通常用于需要将对象转换为特定类型并处理转换结果的情况。
示例代码
-- -------------------- ---- ------- ------ --- - ------- -------- -- ---- -- ------- - ------ --- - --- -- ------- ---------------------- ------ -- - ------- - - ----- - ---- - ---------------------- ------ -- --- - ---------- -
在这个例子中,首先使用is
运算符检查obj
是否为string
类型,如果是,则使用as
运算符将其转换为string
类型并输出结果。