
C#2.0を試用しています。
次のような書き方ではプリミティブ型は取得できるのですが、
配列のフィールドは取得できないので、
なんとかして取得する方法はないのでしょうか?
public class MasterClass
{
public int a = 2;
public int[] b = new int[] { 1, 2 };//←取得できない
}
Object obj = new TestClass();
Type type = obj.GetType();
foreach (FieldInfo fi in type.GetFields())
{
object tmp = fi.GetValue(obj);
Console.WriteLine(fi.Name + ":" + tmp);
}
System.Console.ReadLine();
No.1ベストアンサー
- 回答日時:
配列かどうかは tmp.GetType().IsArrayで判断できますよ
foreach (FieldInfo fi in type.GetFields())
{
object tmp = fi.GetValue(obj);
if ( tmp.GetType().IsArray )
{
int n = 0;
foreach( object temp in (Array)tmp )
{
Console.WriteLine(fi.Name + "[" n "]:" + temp);
n++;
}
}
else
{
Console.WriteLine(fi.Name + ":" + tmp);
}
}
といった具合で
ご返答ありがとうございます。
まず、訂正があります。
public class MasterClass
ではなくて
public class TestClass
でした。すいません。
なるほど、キャストしてforeachで調べれば分かるわけですね。
試してみてできました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
array関数で格納した配列の型を...
-
5
Excel オートフィルタのリスト...
-
6
ExcelのINDEXとMATCH関数でスピ...
-
7
【VBA】ユーザーフォーム リス...
-
8
VBA-読み込んだテキストフ...
-
9
16進数から2進数へ
-
10
ヤフーファイナンス 株価時系...
-
11
Dictionaryを使い4つの条件の一...
-
12
VBA Dictionaryオブジェクトの...
-
13
[VBA]改行入りのセルの値を配列...
-
14
リストボックスの列見出し(Exc...
-
15
エクセルの配列数式、配列定数...
-
16
エクセル 条件を指定した標準...
-
17
iniファイルのキーと値を取得す...
-
18
Excelのオートフィルタで抽出し...
-
19
VBA 配列に格納した値の平均の...
-
20
一番大きな値を返す
おすすめ情報
公式facebook
公式twitter