反射による、クラス・オブジェクトで指定されたデータ配列に

友人で問題が発生しました:

、(...「サン」、「20」)テキスト内の文字列から知られているタイプ(「文字列」、「INT」....)の文字列を読みます

所望のクラスオブジェクトに変換されます。

データが大きく、頻繁に使用することは、次のように小さなデモを書き込むので、反射の効率に影響を与える可能性があります。

Personクラス:

1  クラス2      {
 3。         公的  XM { GETSET ;}
 。4          パブリック INT NL { GETSET ;}
 。5          公共 ボイドSHOWME()
 。6          {
 7              Console.WriteLineを(" I " + XM + " 私は"。 + NL + " 歳。" );
 8          }
 9      }

変換ヘルパークラス:

クラスConvert_Helper 
    { 
        静的PropertyInfo [] PS;
         // 葉式、反射バックのすべてのパブリックプロパティ
        パブリック 静的 ボイド get_Props <T> (T TT)
        { 
            PS = tt.GetType()GetPropertiesの();. 
        } 
        // 文字に文字列とタイプ、指定の戻り値の型
        のパブリック 静的 動的 change_Type(文字 X、文字列x_type)
        { 
            IF(x_type == " INT " 
            { 
                戻り INT .Parse(X); 
            } 
            戻りX; 
        } 

        // オブジェクト、および割り当てられたオブジェクトの種類に。
        パブリック 静的 ボイド GET_OBJECT(ダイナミック OBJ、文字列 [] MyValues、文字列[] ValueTypeに)
        { 
            ためINT Iは= 0 ; I <myvalues.Length; I ++ 
            { 
                PS [I] .setValue(OBJ、change_Type(MyValues [I] 、ValueTypeに[I])、NULL ); 
            } 
        } 
    }

メインプログラム:

1  静的 ボイドメイン(文字列[]引数)
 2          {
 3              [] V1、T1。
4              リスト<人> mylistという= 新しいリスト<人> ();
5              人のトン。
6              Convert_Helper.get_Props(新しい人());
7  
8              T = 新しい人();
9              V1 = 新しい 文字列 [ 2 ] { " 张三"" 20 " }。
10             T1 = 新しい 文字列 [ 2 ] { " ストリング"" INT " }。
11              Convert_Helper.get_Object(T、V1、T1)。
12              mylist.Add(T)。
13  
14              、T = 新しい人();
15              V1 = 新しい 文字列 [ 2 ] { " 李四"" 18 " }。
16              T1は= 新しい 文字列 [ 2 ] { "文字列" " INT " };
 17              Convert_Helper.get_Object(T、V1、T1);
 18              mylist.Add(T);
 19  
20              foreachのVARの項目マイリスト)
 21              {
 22                  item.showme();
 23              }
 24              コンソール.ReadKey();
 25          }

属性は、わずかに修正get_Props方法に対応しない場合、テキストは、2次元アレイまたは他のバルクの形態である、わずかに変更メインルーチンも、この、。

読者は難しい自分自身ではありません。

おすすめ

転載: www.cnblogs.com/wanjinliu/p/12167948.html