在C#中,as 和 is 是用於處理類型轉換和類型檢查的兩個不同的運算子。
as用於嘗試進行類型轉換is用於檢查物件是否是指定類型的實體,而不進行實際的類型轉換
as 運算子:
as運算子用於將物件轉換為指定類型,如果轉換失敗則傳回null,而不會引發異常。- 通常用於在不確定物件類型時進行類型轉換,如果轉換成功,得到一個非空值,否則得到
null。
1
2
3
4
5
6
7
8
9
10
11
12
object obj = "Hello";
string str = obj as string;
if (str != null)
{
// 轉換成功
Console.WriteLine("Conversion successful: " + str);
}
else
{
// 轉換失敗
Console.WriteLine("Conversion failed");
}
is 運算子:
is運算子用於檢查物件是否為指定類型的實體,傳回一個布林值。- 不執行實際的類型轉換,只是檢查物件的類型。
1
2
3
4
5
6
7
8
9
10
11
object obj = "Hello";
if (obj is string)
{
// 是字串型
Console.WriteLine("Object is a string");
}
else
{
// 不是字串型
Console.WriteLine("Object is not a string");
}
總結
總的來說,as 用於嘗試進行類型轉換,而 is 用於檢查物件是否是指定類型的實體,而不進行實際的類型轉換。使用它們時需要根據特定的需求來選擇。