共用方式為


is (C# 參考)

更新:2007 年 11 月

檢查物件是否與指定的型別相容。例如,下列程式碼可以判斷某個物件是否為 MyObject 型別 (或衍生自 MyObject 的型別) 的執行個體:

if (obj is MyObject)
{
}

如果提供的運算式不可為 Null,且提供的物件可在未造成擲回例外狀況之下,將型別轉換成提供的型別,is 運算式就會評估為 true。

若運算式已知永遠為 true 或永遠為 false,is 關鍵字就會產生編譯時期警告,但通常會在執行階段評估型別相容性。

is 運算子無法多載。

請注意,is 運算子只會考慮參考轉換、boxing 轉換和 unboxing 轉換三種方式。而不會考慮使用其他轉換方式,例如使用者定義轉換。

is 運算子的左邊不允許使用匿名方法 (Anonymous Method)。這個例外狀況包括 Lambda 運算式。

範例

class Class1 {}
class Class2 {}
class Class3 : Class2 { }

class IsTest
{
    static void Test(object o)
    {
        Class1 a;
        Class2 b;

        if (o is Class1)
        {
            Console.WriteLine("o is Class1");
            a = (Class1)o;
            // Do something with "a."
        }
        else if (o is Class2)
        {
            Console.WriteLine("o is Class2");
            b = (Class2)o;
            // Do something with "b."
        }

        else
        {
            Console.WriteLine("o is neither Class1 nor Class2.");
        }
    }
    static void Main()
    {
        Class1 c1 = new Class1();
        Class2 c2 = new Class2();
        Class3 c3 = new Class3();
        Test(c1);
        Test(c2);
        Test(c3);
        Test("a string");
    }
}
/*
Output:
o is Class1
o is Class2
o is Class2
o is neither Class1 nor Class2.
*/

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 7.6.6 Cast 運算式

  • 7.9.10 is 運算子

請參閱

概念

C# 程式設計手冊

參考

C# 關鍵字

typeof (C# 參考)

as (C# 參考)

運算子關鍵字 (C# 參考)

其他資源

C# 參考