说我有两个对象ObjA和ObjB.假设它们来自同一个类,并且调用了一个方法CommonMethod(),我正在寻找一种方法来做这样的事情:
void CallObjectMethod(string name)
{
// where name could be 'A' or 'B'
(Obj + name).CommonMethod();
}
Run Code Online (Sandbox Code Playgroud)
而不是做很长的路:
void CallObjectMethod(string name)
{
if(name == 'A')
objA.CommonMethod();
else if(name == 'B')
objB.CommonMethod();
}
Run Code Online (Sandbox Code Playgroud)
我明白这可能是通过反思来完成的,但不太确定如何实现这一点.
您应该使用类型的字典<string, Obj>然后在方法中执行:
void CallObjectMethod(string name)
{
Obj ObjFromDictionary = MyDictionary[name];
ObjFromDictionary.CommonMethod();
}
Run Code Online (Sandbox Code Playgroud)
你当然可以直接调用它而不创建临时Obj ObjFromDictionary...
你应该首先验证该字符串参数...
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |