2011-01-15 7 views
1

Eine Frage zu Liste;Frage zum Ausdruck Liste <T> zum Bildschirm

alt text Wenn ich "List<PlugwiseMessage> msg" mit dem Wert der aus dem Bild haben:

ich nur PlugwiseLib.BLL.BC.PlugwiseMessage als Ausgabe erhalten.

Aber wie kann ich den Wert von _message, _owner and _type auf meinem Bildschirm sehen? oder der Wert von Message, Owner, and Type?

Und kann mir jemand den Unterschied erklären?

Antwort

3

Ihre Liste enthält eine Sammlung von PlugwiseLib.BLL.BC.PlugwiseMessage Objekte. Nachricht, Besitzer und Typ sind Eigenschaften des Objekts. Die Variablen _message, _owner und _type sind die Schutzfelder, die von den Eigenschaften verfügbar gemacht werden.

Wenn Sie die Konsolenausgabe ausführen, rufen Sie .ToString() auf dem Objekt PlugwiseMessage. Das Standardverhalten von ToString() besteht darin, den Namen des Objekts auszugeben. Wenn Sie die Eigenschaften anzeigen möchten, müssen Sie mehrere Zeilen

Console.WriteLine(msg[i].Message); 
Console.WriteLine(msg[i].Owner); 
Console.WriteLine(msg[i].Type); 
+0

Das ist schnell, danke !! – Plumbum7

1

overide ToString-Methode in PlugWiseMessage Typ hinzuzufügen.

public override string ToString() 
     { 
      return String.Format("Owner {0}, Message {1}, Type {2}", this.Owner, this.Message, this.Type); 
     } 
+0

Das ist schnell, danke !! – Plumbum7

0
msg[i].Message 
msg[i].Owner 
msg[i].Type 
+0

Das ist schnell, danke !! – Plumbum7

1

Das Problem ist, dass Sie das Objekt selbst bedrucken möchten und nicht die Eigenschaften, so dass es verwendet die Standard-Methode ToString(), die den Namen des Objekttyp zurückgibt.

Es gibt eine von zwei Möglichkeiten. Sie können die ToString() -Methode in der Klasse PluginwiseMessage außer Kraft setzen eine formatierte Zeichenfolge mit der Info zurückkehren Sie wollen oder wenn Sie keinen Zugriff auf das haben, können Sie folgendes tun:

foreach(PluginwiseMessage message in msg) 
{ 
    Console.WriteLine("{0} {1} {2}", message.Message, message.Owner, message.Type); 
    Console.Read(); 
} 

Sie können die leicht neu ordnen Parameter werden gedruckt und fügen mehr Text zur Ausgabe hinzu, aber das gibt einfach Nachricht, Besitzer und Typ getrennt durch Leerzeichen aus.

+0

Das ist schnell, danke !! – Plumbum7

1

Ihre Liste enthält PlugwiseMessage-Objekte und Sie weisen Console an, sie aufzuschreiben. Dazu müssen PlugwiseMessage-Instanzen in eine Zeichenfolge konvertiert werden. Dazu wird ToString() verwendet und die Standardimplementierung gibt nur den Namen des Typs aus. Das beobachtest du.

Wenn es möglich ist, sollten Sie die ToString-Methode überschreiben und an Ihre Bedürfnisse anpassen. Wenn das nicht möglich ist, müssen Sie die Werte selbst ausgeben. Das bedeutet, dass Sie msg [i] .Messasge, msg [i] .Owner, ... an WriteLine() übergeben müssen.

+0

Das ist schnell, danke !! – Plumbum7