獲得參考實例的成員提供類C#:使用反射來在構造
public class MyClass
{
public SomeObject myObject;
public AnotherObject myOtherObject;
// many more members
public MyClass()
{
string name = getMemberNameAndValue();
// name == "myObject" or "myOtherObject"
// now obtain reference to _this_ instance's
// member given by `name` so I can set its member's value.
}
}
我不只是想獲得一個新的對象,它是同樣的類型由name
給,我想獲得對正在創建的實例的成員的實際引用,以便我可以設置其自己的成員的值。
編輯:我改變了get
函數的名稱。也就是說,這個(服務器調用)函數不僅檢索要設置的成員的名稱,而且還檢索要設置的值。哪個成員(即myObject
或myOtherObject
)將被設置不是固定的,並且可能根本不設置。
EDIT2:我打算的原因(ED)使用反射的是,成員對象的列表會很大,我想避免使用許多if
陳述或者甚至更長switch
(如建議在下面的評論) 。
到目前爲止,您試圖做些什麼來設置使用反射的字段,以及您嘗試解決方案時遇到了哪些問題? – Servy 2014-10-31 17:44:19
我對你想要在這裏完成的事情感到困惑。爲什麼你需要爲此使用反射?爲什麼不能用實際的實例來設置它的值?只有當你不知道什麼是可能的時候,反思纔是必要的......但你在這裏確實知道。 – 2014-10-31 17:47:52
'getObjectName'方法不僅返回'myObject' xor'myOtherObject'的值,還返回將要設置的值。這意味着,我需要獲得要設置的成員(在函數調用之後),然後進行設置。 – jayflo 2014-10-31 17:51:33