C#におけるasとisの使い方

1240 ワード

一、タイプ変換
1.いずれのタイプもベースクラスタイプに変換でき、暗黙的な変換で完了する.
2.任意のタイプが派生タイプに変換された場合、表示変換を行う必要があります.たとえば、(タイプ名)オブジェクト名;
3.GetTypeを使用すると、任意のオブジェクトの正確なタイプを取得できます.
4.基本タイプはConvertクラスを使用してタイプ変換を実現することができる.
5.string以外の他のタイプには、文字列タイプを対応する基本タイプに変換するためのParseメソッドがあります.
6.値タイプと参照タイプの変換を梱包(boxing)または解体(unboxing)と呼ぶ.
二、is/as例
is変換ルール:
1.オブジェクトタイプの互換性を確認し、結果true(false)を返します.
2.異常を投げ出さない.
3.オブジェクトがnullの場合、falseに戻ったばかりです.
例:

    object o = "abc";
    if (o is string) //            
    {
        string s = (string)o; //            ,   
        MessageBox.Show("    !");
    }
    else
    {
        MessageBox.Show("    !");
    }

as変換規則:
1.オブジェクトタイプの互換性を確認し、変換結果を返し、互換性がない場合nullを返します.
2.異常を投げ出さない.
3.結果が空であると判断した場合、強制実行型変換はNull ReferenceException異常を放出する.
例:

    object o = "abc";
    string s = o as string; //            ,     
    if (s != null) 
        MessageBox.Show("    !");
    else
        MessageBox.Show("    !");

注意:asはisより互換性チェックを1回少なく実行し、パフォーマンスが少し向上する可能性があります.