在方法中,如果參數名稱與對象屬性名稱完全匹配,是否可以「自動分配」值?如果對象屬性名稱等同,「自動分配」參數值?
作爲一個例子,假設有以下方法,即用的類型myexample中:
public static void Foo (string String1, string String2)
{
//rather than doing declarative assignment
MyExample example = new MyExample();
MyExample.String1 = String1;
// Some magic method, Reflection maybe?
MyExample example = SomeMethodThatLooksAtParametersAndAssigns();
}
本質上,在上述的參數名,字符串1,準確的屬性名稱匹配MyExample對象。而不是一個一個地分配它們,有沒有辦法讓這個自動化?我正在尋找從另一種方法調用Foo方法,查看調用者參數,然後進行分配。所以Foo或多或少是一種實用方法,並且與任何特定類型無關。
更復雜的是,是否有可能以通用的方式對每個對象/類型都做同樣的事情?
是的,你可以用反射來做到這一點。使用字符串名稱檢索屬性,並將其值設置爲您希望的值。看看'someObject.GetType()。GetProperty(string1);'。 –
代碼示例??? – user3010406
謝謝,但這是一個參考硬編碼。你將如何傳遞調用方法來查看參數? – user3010406