c# 類中is 與as 運算符瞭解

來源:互聯網
上載者:User
1、is運算符:
   用於檢查對象是否與給定類型相容。如果所提供的運算式非空,並且所提供的對象可以強制轉換為所提供的類型而不會導致引發異常,則 is 運算式的計算結果將是 true。
    注意:
         1) is 運算子只考慮引用轉換、裝箱轉換和unboxing轉換。不考慮其他轉換,如使用者定義的轉換。
         2) is會影響效能。

using System;
class Fruit
{
}
class Apple:Fruit
{
    public int i=1;
}

class Conversion
{
    static void Main()
    {
        Fruit f=new Apple();
        //is:判斷f是否相容於Apple類,is只返回Tru or False    
        if(f is Apple)
        {
            Apple a=(Apple)f;
            Console.WriteLine(a.i);
            Console.ReadLine();
        }
    }
}

2、as運算符:
    用於在相容的參考型別之間執行轉換。as 運算子類似於強制轉換,所不同的是,當轉換失敗時,運算子將產生空,而不是引發異常。更嚴格地說,這種形式的運算式
     注意:
           1)as 運算子只執行引用轉換和裝箱轉換。as 運算子無法執行其他轉換,如使用者定義的轉換,這類轉換應使用 cast 運算式來執行。
           2)as運算符在效能上比is快。

using System;
class Fruit
{
}
class Apple:Fruit
{
    public int i=1;
}

class Conversion
{
    static void Main()
    {
        Fruit f=new Apple();
        
        //as:判斷f是否相容於Apple類,相容時返回對Apple對象的引用,並將其賦於a;不相容時,返回為Null
        Apple a=f as Apple;
        if(a!=null)
        {
            Console.WriteLine(a.i);
            Console.ReadLine();
        }
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.