我有3个班级: -
public Class Example1
{
public void Method1()
{
}
public void Method2()
{
}
}
public Class Example2
{
public void Method3()
{
}
public void Method4()
{
}
}
public Class CompletelyDifferentClass
{
public void DifferentMethod(Example1/Example2 obj)
{
obj.Method1(); //if object is passed for Example1
obj.Method3(); //if object is passed for Example2
}
}
如果我们看到CompletelyDifferentClass和public DifferentMethod(Example1 / Example2 obj)
我希望DifferentMethod可以在任何时候发送Example1对象或Example2对象时获取参数。 如果发送了Example2对象,它应该启用Example2的方法,如obj.Method3();
我不打算将哪个类的对象作为参数发送给该方法。
如何为DifferentMethod
答案 0 :(得分:0)
您可以编写基类,然后从该基类继承您的子类。
然后,您可以传递从同一个类继承的任何类型的子类。像
public class myBase{
}
public class A: myBase{
}
public class B: myBase{
}
public static void myFunction(myBase obj){
}
你可以将任何子类传递给你的基类,如
myFunction(A);
myFunction(B);
另一种方法是使用方法重载。您可以使用相同的签名编写相同的函数。 This是函数重载的好读物
您还可以将对象作为参数类型。或许更好的方法是使用泛型:
void MyFunction<T>(T parm) {
}
希望有所帮助:)