2016-10-27 17 views
-1

多分簡単な質問ですが、私はパラメータを使って別のクラスに渡される初期化されたクラスオブジェクトを持っています。クラスオブジェクトは、そのメンバの値をチェックするために読み込まれ、不正な場合にはそれらを変更する可能性があります。すべてのクラスプロパティを反復する

個々のプロパティにアクセスして値を変更できますが、すべての整数型のプロパティをループして基本値を確認し、必要に応じて変更します。ここで

は、オブジェクト構造の例です。

+ Prices 
++ MainPrices 
+++ RelevantPrices 
++++ (Int) Price 

+ SubPrices 
++ MainPrices 
+++ RelevantPrices 
++++ (Int) Price 

+Rooms 
++ Data 
+++ (String) Name 
+++ (Int) NameType 
+++ (String) Location 
+++ (Int) RoomNumber 

私はここで行うに必要なものすべてのint型のパラメータを介してRooms.Data、ループを取得することです。私はリフレクションを試してみましたが、そのために型の新しいインスタンス参照が必要です。私が持っているのは初期化されたクラスオブジェクトです。

誰でもループオーバーして条件付きで既存の値を変更するにはどうすればよいかアドバイスできますか?

EDIT:

HERESにいくつかのサンプルコード:

public class Test() 
{ 

public Void Init(MyClassObject Data) 
{ 

//Data is initialised with data, it has the structure explained in the original description 

//What i need to do is loop over the initialised objects properties here in this Init method, 
} 

} 
+1

のリストが表示されますタイプ "? – Amy

+1

"新しいインスタンス参照 "と"初期化されたクラスオブジェクト "の違いは分かりません。[mcve]は本当に助かります... –

+1

"しかし、 " - いいえ、新しい参照は必要ありません。既存の参照を使用し、既存の参照を使用します。 – Quantic

答えて

0

これはあなたが私は新しいインスタンスの参照が必要です」とはどういう意味ですかあなたの整数の性質

var integers = this.GetType().GetProperties().Where(p => p.PropertyType == typeof(int)).ToList(); 
関連する問題