用于在兼容的引用类型之间执行转换。例如:
string s = someObject as string;
1
if (s != null)
2
{
3
// someObject is a string.
4
}
5
备注
2

3

4

5

as 运算符类似于强制转换,所不同的是,当转换失败时,运算符将产生空,而不是引发异常。更严格地说,这种形式的表达式
1
expression as type
2
等效于
2

1
expression is type ? (type)expression : (type)null
2
示例:
2

1
// cs_keyword_as.cs
2
// The as operator.
3
using System;
4
class Class1
5
{
6
}
7
8
class Class2
9
{
10
}
11
12
class MainClass
13
{
14
static void Main()
15
{
16
object[] objArray = new object[6];
17
objArray[0] = new Class1();
18
objArray[1] = new Class2();
19
objArray[2] = "hello";
20
objArray[3] = 123;
21
objArray[4] = 123.4;
22
objArray[5] = null;
23
24
for (int i = 0; i < objArray.Length; ++i)
25
{
26
string s = objArray[i] as string;
27
Console.Write("{0}:", i);
28
if (s != null)
29
{
30
Console.WriteLine("'" + s + "'");
31
}
32
else
33
{
34
Console.WriteLine("not a string");
35
}
36
}
37
}
38
}
39
输出:
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

1
0:not a string
2
1:not a string
3
2:'hello'
4
3:not a string
5
4:not a string
6
5:not a string
7

2

3

4

5

6

7
