假设我有 2 个对象 ObjA
和 ObjB
。假设它们来自同一个类,方法名为 CommonMethod()
,我正在寻找一种方法来执行如下操作:
void CallObjectMethod(string name)
{
// where name could be 'A' or 'B'
(Obj + name).CommonMethod();
}
与其长途跋涉:
void CallObjectMethod(string name)
{
if(name == 'A')
objA.CommonMethod();
else if(name == 'B')
objB.CommonMethod();
}
我知道这可能可以通过反射(reflection)来完成,但不太确定如何实现。
最佳答案
你应该使用 dictionary类型 <string, Obj>
然后在方法中做:
void CallObjectMethod(string name)
{
Obj ObjFromDictionary = MyDictionary[name];
ObjFromDictionary.CommonMethod();
}
您当然可以直接调用它而无需创建临时 Obj ObjFromDictionary
...
并且您应该首先验证该字符串参数...
关于c# - 动态引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45630054/