【发布时间】:2017-08-22 18:22:42
【问题描述】:
我有 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编写代码
【问题讨论】:
-
如果您不知道在编译时作为参数传递的对象的类型(键入
object),那么您需要阅读Reflection。 -
使用
is运算符或as运算符,也许?但听起来重载会更好。这听起来有点像 X-Y 问题,不清楚它与 ASP.NET 有什么关系。