のtypeof演算とメソッドGetType違い

typeof演算:typeof演算子は、のためのSystem.Typeオブジェクトを取得するために使用される  タイプ

 

オペレータは、特定のタイプ達成するため  のSystem.Typeの  オブジェクトを。

 

T = typeof演算(int)を入力します。

 

 

 

メソッドGetTypeは:現在のインスタンスのTypeを取得します。

 

            現在のインスタンスの種類を取得する方法

 

             私は10を= int型。
Console.WriteLineを(i.GetType())。

 

 

違い:

 

  • typeof演算は、()演算子とメソッドGetTypeあります
  • (初期化後)と呼ばれることができるようにするので、唯一のインスタンスの確立後のベースクラスのSystem.ObjectのメソッドGetType()メソッド
  • typeof演算()だけint型、文字列、文字列、カスタム型パラメータ、および例することはできません

     

  • メソッドGetType()とtypeof演算()は、両方のSystem.Typeへの参照を返します。

     

    TypeOf関数()およびメソッドGetType()の違い:  

    (1)TypeOf関数():タイプのクラスを取得します。

    (2)メソッドGetType():タイプのクラスの例を与えるために

    抽象的または仮想、オーバーライド:触媒は前の方法は、親クラスでこのメソッドをオーバーライド

 

 

 

リトル使用メソッドGetType()メソッド

メソッドGetType()は、現在のインスタンスののSystem.Typeを取得します。

 2つのクラスがあります:学生とStudentDTOは次のとおりです。

Studentクラス::

コードをコピー

パブリッククラス学生
    {
        パブリック学生()
        { 
        
        }

        パブリック仮想ストリングイド{GET。セットする; }

        パブリック仮想列StudentNo {得ます。セットする; }

        パブリック仮想列名前{取得します。セットする; }

        パブリック仮想列CLASSID {得ます。セットする; }

        パブリック仮想列ProfessionId {得ます。セットする; }

        パブリック仮想列CollegeId {得ます。セットする; }

        パブリック仮想int型の電話{取得します。セットする; }

        パブリック仮想int型のセックス{取得します。セットする; }

        パブリック仮想列アドレス{GET。セットする; }
    }

コードをコピー

StudentDTOカテゴリ:

コードをコピー

パブリッククラスStudentDTO
    {
       パブリックStudentDTO()
       { 

       }
       パブリック仮想ストリングイド{GET。セットする; }

       パブリック仮想列StudentNo {得ます。セットする; }

       パブリック仮想列名前{取得します。セットする; }

       パブリック仮想列CLASSID {得ます。セットする; }

       パブリック仮想列ProfessionId {得ます。セットする; }

       パブリック仮想列CollegeId {得ます。セットする; }

       パブリック仮想int型の電話{取得します。セットする; }

       パブリック仮想int型のセックス{取得します。セットする; }

       パブリック仮想int型TeacherId {取得します。セットする; }
    }

コードをコピー

今学生を作成します。

コードをコピー

            学生の学生=新学生();
            student.Id = Guid.NewGuid()toString()を。
            student.Name = "张三"。
            student.StudentNo = "T001"。
            student.Phone = 10086;
            student.Sex = 1。
            student.CollegeId = Guid.NewGuid()toString()を。
            student.ClassId = Guid.NewGuid()toString()を。
            student.ProfessionId = Guid.NewGuid()toString()を。
            student.Address = "福建"。

コードをコピー

今DTOクラスStudentDTOの学生とStudentDTOアサイン情報の学生を作成し、一般的に使用される方法は次のとおりです。

コードをコピー

            StudentDTO studentDTO =新しいStudentDTO();
            studentDTO.Id = student.Id。
            studentDTO.Name = student.Name。
            studentDTO.StudentNo = student.StudentNo。
            studentDTO.Phone = student.Phone。
            studentDTO.Sex = student.Sex。
            studentDTO.CollegeId = student.CollegeId。
            studentDTO.ClassId = student.ClassId。
            studentDTO.ProfessionId = student.ProfessionId。 

コードをコピー

使用メソッドGetType()を実現することができます。

コードをコピー

            foreachの(。student.GetTypeにおけるVAR項目( )GetPropertiesの())// 戻り、全てのパブリックプロパティ学生
            {
                VAR値= item.GetValue(学生、NULL); //返すプロパティ値    
                VAR setobj = studentDTO.GetType()。 GetPropertyメソッド(item.Name);指定された検索属性名を持つ//共通属性
                IF(= NULL値setObj = NULL &&!)
                {
                    setobj.SetValue(studentDTO、値、NULL);
                }
            }

 

このルックスアップに非常に良い記録を持つ、より簡潔なコード......ああ、ちょうど個人的な感情というメソッドGetType()メソッド.......

 

多型、メソッドGetType()はなく通常どおりより、オブジェクトの種類に応じて異なるコードを実行することを可能にする有用な方法である場合、同じコードは、すべてのオブジェクトに対して実行され、

関数型パラメータのオブジェクトを受け入れる場合、例えば、いくつかの面で行うことができる(組み合わせgetypeで、追加のタスクをオブジェクト)とtypeof演算()は、次のように比較することができます。

 

もし(myobj.GetType()== typeof演算(MyComplexClass))

{

// ....

}

公開された522元の記事 ウォン称賛52 ビュー70000 +

おすすめ

転載: blog.csdn.net/sinolover/article/details/104254521