2017-02-05 3 views
0

Zum Beispiel habe ich eine Klasse mit dem Namen „Baumes“ mit zwei privaten VariablenWie Objektwerte innerhalb eines Wörterbuchs bekommen <string, (Objekt)>

public class Tree() 
    { 
     private string name; 
     private int age; 

     public void Tree(string s, int x) 
     { 
     //simply make an object. 
     } 


    } 

ich ein Objekt aus einer anderen Klasse erstellen Wörterbuch Wesen machen

die Zeichenfolge würde sich auf Spitzname beziehen, und Baum würde die Person enthalten, zu der es gehört. (Eine Person pro Spitzname). Sagen wir, das Wörterbuch hat einen Schlüssel von "Vats" und der Baum, der zu "Vats" gehört, hat name = Dan und Alter = 18. Wenn ich Name und Alter bekommen möchte, wie würde ich weitermachen, weil ich mir sicher bin ‚t tun:

"Bottiche"= nickn

string a = family.TryGetValue[nickN].name; 
int x = family.TryGetValue[nickN].age; 

irgendwelche Gedanken?

+2

Was ist falsch mit Familie [lastN] .name (wenn yo Mach die Baumfelder öffentlich)? – Lucero

+0

So viel Syntaxfehler – pinkfloydx33

+0

würde es nicht nur ein Tree-Objekt zurückgeben? – MichaelT

Antwort

2
Tree tree = null; 
if(family.TryGetValue(lastName, out tree)) 
{ 
    var fName = tree.Name; 
    var age = tree.Age; 
} 
+0

warum fname statt name? – MichaelT

+0

Vorname; nicht wichtig – Moho

1

Wenn Sie sicher wissen, dass das Element, das Sie zugreifen möchten, im Wörterbuch vorhanden ist, können Sie den direkten Zugriff Syntax mit eckigen Klammern verwenden, anstatt TryGetValue zu verwenden.

string a = family[nickN].name; 
int x = family[nickN].age; 

Um die privaten Felder name und age von außerhalb der Tree Klasse zuzugreifen, sie zu veröffentlichen oder öffentliche Eigenschaften zu erstellen, um sie wie folgt zugreifen:

public class Tree() 
{ 
    private string name; 
    private int age; 

    public void Tree(string s, int x) 
    { 
     name = s; 
     age = x; 
    } 

    public string Name{ get{ return name; }} 
    public int Age{ get{ return age; }} 
} 

Dann können Sie verwenden :

string a = family[nickN].Name; 
int x = family[nickN].Age; 
Verwandte Themen