C#中的IS与AS运算符
IS运算符
C#中的“is”运算符检查对象的运行时类型是否与给定类型兼容。
以下是语法-
expr is type
在这里,expr是表达式
type是类型的名称
下面的示例显示了C#&minis;中is运算符的用法。
示例
using System;
class One { }
class Two { }
public class Demo {
public static void Test(object obj) {
One x;
Two y;
if (obj is One) {
Console.WriteLine("Class One");
x = (One)obj;
} else if (obj is Two) {
Console.WriteLine("Class Two");
y = (Two)obj;
} else {
Console.WriteLine("没有课程!");
}
}
public static void Main() {
One o1 = new One();
Two t1 = new Two();
Test(o1);
Test(t1);
Test("str");
Console.ReadKey();
}
}输出结果
Class One Class Two 没有课程!
AS运算符
“as”运算符在兼容类型之间执行转换。就像强制转换操作一样,它仅执行引用转换,可为空的转换和装箱转换。as运算符不能执行其他转换,例如用户定义的转换,而应使用强制转换表达式来执行。
以下是显示在C#中使用as操作的示例。这里用作转换-
string s = obj[i] as string;
尝试运行以下代码以在C#中与'as'运算符配合使用-
示例
using System;
public class Demo {
public static void Main() {
object[] obj = new object[2];
obj[0] = "jack";
obj[1] = 32;
for (int i = 0; i < obj.Length; ++i) {
string s = obj[i] as string;
Console.Write("{0}: ", i);
if (s != null)
Console.WriteLine("'" + s + "'");
else
Console.WriteLine("这不是字符串!");
}
Console.ReadKey();
}
}输出结果
0: 'jack' 1: 这不是字符串!