リストに関する質問。
私が
"List<PlugwiseMessage> msg"
写真からの値を持っているとき:
PlugwiseLib.BLL.BC.PlugwiseMessageのみを出力として取得します。
_message, _owner and _type
しかし、画面から値を確認するにはどうすればよいですか?またはMessage, Owner, and Type
?の値
そして、誰かが私に違いを説明できますか?
リストに関する質問。
私が
"List<PlugwiseMessage> msg"
写真からの値を持っているとき:
PlugwiseLib.BLL.BC.PlugwiseMessageのみを出力として取得します。
_message, _owner and _type
しかし、画面から値を確認するにはどうすればよいですか?またはMessage, Owner, and Type
?の値
そして、誰かが私に違いを説明できますか?
リストにはPlugwiseLib.BLL.BC.PlugwiseMessage
オブジェクトのコレクションがあります。メッセージ、所有者、およびタイプは、オブジェクトのプロパティです。_message、_owner、および_type変数は、プロパティによって公開されるバッキングフィールドです。
コンソール出力を実行しているときは、オブジェクトを呼び出し.ToString()
ていPlugwiseMessage
ます。のデフォルトの動作はToString()
、オブジェクトの名前を出力することです。プロパティを表示する場合は、いくつかの行を追加する必要があります
Console.WriteLine(msg[i].Message);
Console.WriteLine(msg[i].Owner);
Console.WriteLine(msg[i].Type);
PlugWiseMessageタイプのToStringメソッドをオーバーライドします。
public override string ToString()
{
return String.Format("Owner {0}, Message {1}, Type {2}", this.Owner, this.Message, this.Type);
}
問題は、プロパティではなくオブジェクト自体を出力しているため、オブジェクトの型の名前を返すデフォルトのToString()メソッドを使用することです。
2つのオプションのうちの1つがあります。PluginwiseMessageクラスのToString()メソッドをオーバーライドして、必要な情報を含むフォーマットされた文字列を返すことができます。アクセスできない場合は、次のように実行できます。
foreach(PluginwiseMessage message in msg)
{
Console.WriteLine("{0} {1} {2}", message.Message, message.Owner, message.Type);
Console.Read();
}
印刷中のパラメータを簡単に再配置して出力にテキストを追加できますが、それは単にメッセージ、所有者、およびタイプをスペースで区切って出力します。
リストにはPlugwiseMessageオブジェクトが含まれており、コンソールにそれらを書き留めるように指示します。これを行うには、PlugwiseMessageインスタンスを文字列に変換する必要があります。ToString()はそれを行うために使用され、デフォルトの実装は型の名前をダンプするだけです。それはあなたが観察するものです。
可能であれば、ToStringメソッドをオーバーライドして、必要に応じて調整する必要があります。それが不可能な場合は、自分で値をダンプする必要があります。つまり、msg [i] .Messasge、msg [i] .Owner、...をWriteLine()に渡す必要があります。
msg[i].Message
msg[i].Owner
msg[i].Type