如何将任何类对象作为参数传递给方法

时间:2017-03-29 10:10:47

标签: c# asp.net .net

我有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

编写代码

1 个答案:

答案 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) {

}

希望有所帮助:)