2017-02-05 48 views
0

比如我有一個名爲「樹」有兩個私有變量如何獲得在詞典中對象值<字符串(對象)>

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

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


    } 

我創建一個從另一個類製作字典作爲一個對象類

Dictionary<string, Tree> family = new Dictionary<string, Tree>; 

該字符串將引用暱稱,樹會包含它所屬的人。 (每個暱稱一個人)。假設字典中有一個「Vats」的鍵,而屬於「Vats」的樹的名稱是Dan,年齡是18歲。如果我想知道名字和年齡,我將如何繼續下去,因爲我確信我可以「做T:

「大桶」= nickN

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

有什麼想法?

+2

Family [lastN] .name(如果喲你把樹域公開)? – Lucero

+0

這麼多的語法錯誤 – pinkfloydx33

+0

不會只是返回一個Tree對象嗎? – MichaelT

回答

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

爲什麼fname而不是名字? – MichaelT

+0

名字;不重要 – Moho

1

如果你當然知道,你要訪問的項目在字典中確實存在,你可以使用直接訪問語法用方括號而不是使用TryGetValue

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

爲了訪問私有字段nameTree類外age,讓他們公開,或創建公共屬性來訪問它們像這樣:

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; }} 
} 

然後你可以使用:

string a = family[nickN].Name; 
int x = family[nickN].Age; 
相關問題