2014-01-23 22 views
0

Noob問題在這裏,我想知道如何使用傳遞給方法的參數訪問對象。我試過這個,但我得到一個標識符預期的錯誤。如何使用方法參數訪問對象?

private Boolean checkStates(string button) 
{ 
    if (lastState.Buttons.(button) = padState.Buttons.(button)) 
    { 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 

這是我試圖做的JavaScript等價物。

var object = {'property':'A'}; 

function getPropVal(prop){ 
    return object[prop]; 
} 

getPropVal(property); 
//output: 'A' 
+0

[如何通過字符串在#c中訪問類成員?](http://stackoverflow.com/questions/8953605/how-to-access-class-member-by-string-in-c) – MarcinJuraszek

+0

在你的psudo C#示例中,你能給出更多關於你想要完成什麼的解釋嗎?我想我明白你想要什麼,但我不確定。 (也在你的if語句中,你需要使用'=='而不是'='來測試是否相等) –

+0

我想通過傳遞給方法的值訪問lastState.Buttons,例如如果A傳遞了我想訪問lastState .Buttons.A – Jabbath

回答

1

如果兩個Buttons是「按鈕」的dictionaris通過標識比你可以這樣做:

if (lastState.Buttons[button] == padState.Buttons[button]) 

還要注意==(假設你要比較,不分配,因爲它是一個if語句)。

如果是集合,你可以使用LINQ FirstOrDefault

var button1 = lastState.Buttons.FirstOrDefault(b => b.SomeProperty == button); 
    var button2 = lastState.Buttons.FirstOrDefault(b => b.SomeProperty == button); 
    if (button1 != null && button1 == button2)... 

注意,在這兩種情況下if比較對象,如果您想要按照特定財產平等 - 相應的變化情況。

相關問題