引導語:C語言把除了控制 語句和輸入輸出以外的幾乎所有的基本操作都作為運算子處理,以下是小編整理的c#運算子關鍵字is的使用,歡迎參考閱讀!
檢查物件是否與給定型別相容。例如,下面的程式碼可以確定物件是否為 MyObject 型別的.一個例項,或者物件是否為從 MyObject 派生的一個型別:
if (obj is MyObject)
{
}
如果所提供的表示式非空,並且所提供的物件可以強制轉換為所提供的型別而不會導致引發異常,則 is 表示式的計算結果將是 true。
如果已知表示式將始終是 true 或始終是 false,則 is 關鍵字將導致編譯時警告,但是,通常在執行時才計算型別相容性。
不能過載 is 運算子。
請注意,is 運算子只考慮引用轉換、裝箱轉換和取消裝箱轉換。不考慮其他轉換,如使用者定義的轉換。
在 is 運算子的左側不允許使用匿名方法。lambda 表示式屬於例外。
示例
C#
class Class1 {}
class Class2 {}
class Class3 : Class2 { }
class IsTest
{
static void Test(object o)
{
Class1 a;
Class2 b;
if (o is Class1)
{
eLine("o is Class1");
a = (Class1)o;
// Do something with "a."
}
else if (o is Class2)
{
eLine("o is Class2");
b = (Class2)o;
// Do something with "b."
}
else
{
eLine("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.
*/