将对象作为参数传递给通用对象

时间:2015-04-03 13:23:07

标签: c#

我想将具有方法setName的对象传递给泛型类型的对象。一个例子:

//Instead of obj.setName = "John"; do this:
aMethod(obj);
aMethod(different_obj); //different_obj has also a method setName
public aMethod(object anOtherObj) {
   anOtherObj.setName = "John";
   Console.Writeline(anOtherObj.setName);
}

1 个答案:

答案 0 :(得分:1)

只需使用动态参数声明您的方法:

public void Method(dynamic anotherObj) 
{
     anotherObj.Name = "John";
     Console.Writeline(anotherObj.Name);
}

同样根据您的语法,我认为setName实际上不是一个方法,它可以是属性或字段,因此更好的名称是Name

无论如何,走这条路根本不是一个好习惯。如果这些不同的类具有相同的字段,只需为它们提取基类或接口,并将其用作方法中的参数类型。