C# 接受动态动作方法参数
我正在构建一个应用程序,在这个应用程序中,我有一个签出操作,可以处理几种不同型号中的任何一种型号的签出。它将根据传递给它的模型执行稍有不同的步骤,但差异不足以证明创建单独的操作是合理的 以下是我工作的一个简化概念:C# 接受动态动作方法参数,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我正在构建一个应用程序,在这个应用程序中,我有一个签出操作,可以处理几种不同型号中的任何一种型号的签出。它将根据传递给它的模型执行稍有不同的步骤,但差异不足以证明创建单独的操作是合理的 以下是我工作的一个简化概念: public class FooEstimate { public Guid Id; public DateTime BeginDate; } public class BarEstimate { public Guid Id; public Dat
public class FooEstimate {
public Guid Id;
public DateTime BeginDate;
}
public class BarEstimate {
public Guid Id;
public DateTime BeginDate;
public string BarSpecificField;
}
public ActionResult Checkout (???) {
//process the estimate, etc
}
在不必为每种模型类型创建单独的签出操作的情况下,如何处理此问题?您可以使用基类进行估算:
public class Estimate
{
// whatever
}
public class FooEstimate : Estimate
{
// whatever
}
public ActionResult Checkout (Estimate estimate)
{
}
或者,您可以只进行对象估计
然后,您可以检查参数的类型,以便执行以下步骤:
if (obj is FooEstimate)
{
}
else if (obj is BarEstimate)
{
}
我将为每个类型创建单独的操作,并创建一个助手类/方法来完成每个操作的大部分工作。我认为你的第二种方法是正确的,但不只是检查estimate是继承FooEstimate还是BarEstimate吗?