概述反射
• 通過反射可以提供類型信息,從而使得我們開發人員在運行時能夠利用這些信息構造和使用對象。
• 反射機制允許程序在執行過程中動態地添加各種功能。
運行時類型標識
•運行時類型標識(RTTI),可以在程序執行期間判定對象類型。例如使用它能夠確切地知道基類引用指向了什么類型對象。
•運行時類型標識,能預先測試某個強制類型轉換操作,能否成功,從而避免無效的強制類型轉換異常。
•在c#中有三個支持RTTI的關鍵字:is 、 as 、typeof。 下面依次介紹他們
is運算符:
通過is運算符,能夠判斷對象類型是否為特頂類型,如果兩種類型是相同類型,或者兩者之間存在引用,裝箱拆箱轉換,則表明兩種類型是兼容的。
代碼如下:
View Code
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
if (a is A)
{
Console.WriteLine("a is an A"); //這個打印,因為a 是 A 類型的對象
}
if (b is A)
{
//這個打印,因為b是B類型的對象,而B類型派生于A類型,由于b對象可以轉換為A類型,因此b對象與A類型是兼容的,但是反過來就不成立,例如下面不打印
Console.WriteLine("b is an A because it is derived from");
}
if (a is B)
{
//這個不打印
Console.WriteLine("This won't display , because a not derived from B");
}
if (a is object)
{
新聞熱點
疑難解答
圖片精選