C#中As 及Is 的用法

來源:互聯網
上載者:User

今天一早上網,開啟MSN就看到有個CSDN的朋友發出求救信。同時也在CSDN上他發了個貼子。他問的問題是那種最基本的文法知識方面的問題。我真不明白現在的程式員連這一點常識都沒有,真不知他是如何混到現在的。

他的問題是:

有這樣一段代碼:
GroupRadioButton selectRadioButton =
            dgItem.FindControl("selectRadioButton") as GroupRadioButton;
"as GroupRadioButton;" 是什麼意思
怎麼感覺是VB的寫法呢
我試了試int i = 10 as int 編譯居然沒有錯

為什麼這樣的代碼能通過編譯。在C#中,所有的東西都是對象。因此10也是一個整型對象。這裡用到了as ,那as 是什麼呢。他告訴我說在MSDN裡找不到關於AS的協助。說的也是,你在MSDN裡的索引裡找根本就沒有AS的介紹,那到哪去找到協助呢。其實你只要輸入關鍵字就可以了。找到C#關鍵字,裡面有關於as 及is的用法。

as 運算子類似於類型轉換,所不同的是,當轉換失敗時,as 運算子將產生空,而不是引發異常。在形式上,這種形式的運算式:
expression as type
as 運算子只執行引用轉換和裝箱轉換。as 運算子無法執行其他轉換,如使用者定義的轉換,這類轉換應使用 cast 運算式來代替其執行

關於is的其實也差不多,只是IS不會幫你進行任何的轉換。所以需要自已進行顯示轉換

is 運算子用於檢查對象的運行時類型是否與給定類型相容。

那麼上面的運算式應該這樣寫了

if(10 is int)

{

int i=(int)10;

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.