2017-05-18 91 views
0

我想知道是否有可能例如使用變量作爲屬性或方法或命令。我的意思是,例如我將「.length」保存爲一個字符串,我們稱之爲len。然後用它作爲一個屬性。有沒有辦法從c#中的變量中獲取命令?

例如:

String len = ".length" 
string C = "Cat" 
int L_Cat = C.len 

現在,這並不工作,但C.Length會工作。那麼有沒有辦法讓.Length脫離字符串狀態並將其評估爲屬性?

+0

我不知道,但你可以隨時使用擴展屬性。 – ThePerplexedOne

+2

你可以使用反射查找和調用名稱該方法/財產,如果它存在 –

+5

你能說出你想要使用這樣的事情嗎?它面臨着類型安全,並且違背了C#的一般結構。更好的方法是通過接口實現或類繼承。如果沒有正確的用例(不保證使用接口或繼承),我認爲你的問題是[XY問題]的一個例子(https://meta.stackexchange.com/questions/66377/what-is-the-xy -問題);您在哪裏詢問如何實施特定的解決方案,而不是向您要解決的實際問題尋求幫助。 – Flater

回答

0

是的,您可以使用反射來做到這一點。

你可以寫類似下面的代碼:

string len = "Length"; 
string C = "Cat"; 
int L_Cat = (int)C.GetType() 
      .GetProperties() 
      .Single(x => x.Name == len) 
      .GetValue(C); 
2

,你可以做這樣的:

String len = "Length"; 
string C = "Cat"; 

var prop = C.GetType().GetProperty(len); 
int i = (int)prop.GetValue(C); 
相關問題