解決済みの質問

質問No.1038475
困ってます
困ってます
お気に入り投稿に追加する (0人が追加しました)
回答数2
閲覧数847
C#で、あるクラスのメンバーすべての値を出力したい
C#の勉強したて(Cの知識もへっぽこ)なので、以下のことをしたいのに、
さっぱりやり方が分かりません。
教えて君みたいな質問ですが、心の大きい方、どうぞ教えてくださいませ。

★やりたいこと
他クラスのメンバー全部に値を入力し、かつそれを出力したい。
なお、他クラスのメンバーは数十個あるので、一つづつ代入&出力ではなく、
ループ文を使ったようなもので行えないかと模索中。


★例

//住所録ファイルの内容をコンソール出力するプログラム。
using System;

class Data_Format {
  public string name;
  public string address;
  public string age;
}

class App{

  public static void Read_Data(ref Data_Format obj){
    obj.name = 略) テキストファイルの1行目から読込め
    obj.address = 略) テキストファイルの2行目から読込め
    obj.age = 略) テキストファイルの3行目から読込め
  }

  public static void Main() {
    Data_Format ob = new Data_Format();

    App.Read_Data(ref ob);

    Console.WriteLine(ob.name);
    Console.WriteLine(ob.adress); 
    Console.WriteLine(ob.age);
  }
}


この例では

Mainメソッドで、
3個のオブジェクト(ob.name, ob.address, ob.age)の内容を出力させるのに、
Conosole.WriteLineの文を3個書いています。

さらに、Read_Dataメソッドで
3個のオブジェクト(ob.name, ob.address, ob.age)の値を入力するのに、
3行費やしています。
(↑ファイルの1行目から順番に読ませるので、効率化できる??)

しかし、実際に作りたいプログラムはメンバーが数十個あるので、
ループ文等を使えれば、効率よくなるのかな悪それでもいいのですが、
もっといい方があればご教授下さい。
投稿日時 - 2004-10-12 07:33:38

質問者が選んだベストアンサー

回答No.2
リフレクションを使えば動的に取得できます。

public class Data_Format
{
public string s1 = "1";
public string s2 = "2";
public string s3 = "3";

public string members()
{
string ret = "";
try
{
System.Reflection.FieldInfo[] fields = this.GetType().GetFields();
foreach(System.Reflection.FieldInfo f in fields)
{
ret += (string)f.GetValue(this) + "\n";
}
}
catch(Exception)
{
}
return ret;
}
}
投稿日時 - 2004-10-12 17:00:55
この回答を支持する
(現在0人が支持しています)
お礼
大変参考になりました。
どうもありがとうございました。
投稿日時 - 2004-10-13 09:36:57
この質問は役に立ちましたか?
3人が「このQ&Aが役に立った」と投票しています

ベストアンサー以外の回答 (1)

回答No.1
Data_Formatクラスに、
メンバをコンソールプリントするようなメソッドを
作ればいいと思いますが。
投稿日時 - 2004-10-12 08:23:52
この回答を支持する
(現在0人が支持しています)
別のキーワードで再検索する
もっと聞いてみる

関連するQ&A

  • question

    OBってなんの略?OBってなんの略でしょうか?教えてください。 ...

  • question

    OBは何の略ですか?日本語でいう大学卒業者のOBってなんの略か教えて頂けますか? お願い致します。 ...

  • question

    OBとOGって何の略?OBとOGって‘オールドボーイ、オールドガール’の略なんですか?? これって和製英語なんです...

回答募集中

この他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-

OKWaveのおすすめ情報

特集

同じカテゴリの人気Q&Aランキング

カテゴリ
C・C++
-PR-

ピックアップ

ノウハウ共有サイト

-PR-
-PR-