C#の拡張メソッド研究ノート

    ケースC#の拡張メソッドは、クラス、クラスを追加する方法のために元のソースコードを変更しないで理解するのは簡単です。拡張メソッドは次のように定義される静的メソッドが、それらは、インスタンスメソッドの構文によって呼び出されます。彼らの最初の引数は、メソッドとのパラメーターに作用するタイプを指定します。この修飾子接頭辞を。

    典型的なシナリオは、プログラム2が開いていることです。例えば、誰か他のDLLは、オープンソースではありません、クラスのDLLの新しいメソッドを追加するためには、ほとんどありません。ただし、拡張メソッドは、同様の目的を達成するために使用することができます。

    文書の1、2の新しいタイプ:長方形、GenericClass。

    ///  <まとめ> 
    /// カスタムクラス(矩形)
     ///  </要約> 
    パブリック クラス四角形
    { 
        // プロパティ
        パブリック ダブル幅{ GETSET ;} = 0 ;   // 
        公共 ダブル高{ GETSET ;} = 0 ; // 

        ///  <まとめ> 
        /// コンストラクタ
         ///  </要約> 
        ///  <PARAM名= "幅"> </ PARAM> 
        ///  <PARAM NAME = "高さ「> </ param>の
        長方形(ダブル幅、ダブル高さ)
        {  = 幅。
            高さ = 高さ; 
        } 

        ///  <要約> 
        /// 求周长
         ///  </要約> 
        ///  <戻る> </戻り> 
        公共 ダブルGetPerimeter()
        { 
            リターン(幅+高さ)* 2 
        } 
    }
    ///  <要約> 
    /// 范型类
     ///  </要約> 
    ///  <typeparam名= "T"> </ typeparam> 
    パブリック クラス GenericClass <T> 
    { 
        プライベートTのTOBJ。

        公共GenericClass(TのOBJ)
        { 
            TOBJ = OBJ。
        } 

        パブリックTのGetObject()
        { 
            リターンTOBJ。
        } 
    }

    2は、3つのボタンが追加、のWinFormプログラムを作成します。

    3、拡張メソッドベースの3種類について、主に次のようなクラスの文字列、カスタムカテゴリ、パラダイム。ExtensionHelper:という名前の新しいクラスを作成します。

    ///  <要約> 
    /// クラスは静的クラスで、メソッドは、パブリック静的なタイプである必要があり、パラメータは、このキーワードを使用していました。
    ///  </要約> 
    パブリック 静的 クラスExtensionHelper 
    { 
        ///  <まとめ> 
        /// ネイティブストリングクラス拡張メソッド
         ///  </要約> 
        ///  <PARAM名= "STR"> </ PARAM> 
        パブリック スタティック 無効のsayHello(この 文字列STR)
        { 
            IF文字列.IsNullOrEmpty(STR))
            { 
                MessageBox.Show(" Hello Worldのを。"""MessageBoxButtons.OK、MessageBoxIcon.Information);
             
            } 
            { 
                MessageBox.Show(STR、" 提示、MessageBoxButtons.OK、MessageBoxIcon.Information); 
            } 
        } 

        ///  <要約> 
        /// 自定义类扩展方法
         / //  </要約> 
        ///  <PARAM名= "MC"> </ PARAM> 
        ///  <戻る> </戻り> 
        パブリック 静的 ダブル GETAREA(この矩形RECT)
        { 
            リターン rect.Width * rect.Height。
        } 

        /// <概要> 
        /// 范型类扩展方法
         ///  </要約> 
        ///  ます。<param name = "GEN"> </ param>の
        ///  <リターン> </リターン> 
        パブリック 静的の 文字列表示(この GenericClass < ストリング > GC)
        { 
            戻りgc.GetObjectを()toString()を。
        } 
    }

    次のように4、Winフォームのコードは次のとおり

        ///  <要約> 
        /// 原生类文字列扩展
         ///  </要約> 
        ///  ます。<param name = "差出人"> </ param>の
        ///  <PARAM NAME = "E"> </ param>の
        プライベート 無効のbutton1_Click(オブジェクト送信者、EventArgsの電子)
        { 
            文字列 strの= "" ;
            // 文字列str = "ようこそ中国へ。"; 
            str.SayHello(); 
        } 

        ///  <要約> 
        /// 自定义类扩展
         ///  </要約> 
        ///  ます。<param name = "差出人"> </ param>の
        ///  <
         button2_Click(オブジェクト送信者のEventArgs E)
        { 
            長方形RECT = 新しい新しい矩形(1010 ); 
            MessageBox.Show(" 矩形の領域である:" rect.GetArea +()のToString()。" プロンプト" 、MessageBoxButtons.OK、 MessageBoxIcon.Information); 
        } 

        ///  <まとめ> 
        /// パラダイムクラス拡張
         ///  </要約> 
        ///  <PARAM NAME = "SENDER"> </ PARAM> 
        ///  <PARAM NAME =「E 「> </ param>の
        プライベート 無効をbutton3_Click(オブジェクト送信者のEventArgs E)
        { 
            GenericClass < ストリング > GC = 新しい新しい GenericClass < ストリング >(" これはパラダイムベース拡張方式である。" ); 
            MessageBox.Show(gc.Show()、" プロンプト" 、MessageBoxButtons.OK、MessageBoxIcon .Information); 
        }

    します。https://www.cnblogs.com/forever-Ys/p/10315830.htmlからリファレンス

おすすめ

転載: www.cnblogs.com/atomy/p/11877060.html