c# - 有没有办法在2.0中执行C#4.0可选参数?

标签 c# overloading

我有一个接受两个参数的方法,现在我需要传递一个附加参数,但是调用此参数的所有其他代码可能没有传递该第三个参数。
下面是一个丑陋的hack,但是我只是不熟悉重载的过程,而且我们陷于.NET 2.0中,因此尽管工作正常,但我还是忍不住感觉到它的错误。

   public static void AddPlanFunds(ParticipantResultsPlan planNode, Plan plan)
    {
        AddPlanFunds(planNode, plan, -1);
    }
    public static void AddPlanFunds(ParticipantResultsPlan planNode, Plan plan, int participantId)
    {
        planNode.PlanFunds = new CommonPlanFunds();

        // Add single class funds
        AddSingleClassFunds(planNode.PlanFunds, plan);

        // Add portfolios
        AddPortfolios(planNode.PlanFunds, plan,participantId);
    }


我应该如何做过载?

谢谢!

最佳答案

您的代码是执行此操作的标准方法。这不是一个丑陋的hack。

但是,您应该考虑采用int?并传递null而不是-1

You can create optional parameters in C# 2 to be called from C# 4, using attributes

关于c# - 有没有办法在2.0中执行C#4.0可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008478/

相关文章:

C# 二维碰撞检测问题

java - 什么是一致性构造函数?

overloading - 默认参数与重载,何时使用哪个

c# - 未使用排序或 Linq OrderBy 方法的无序数组中的前 K 个数字

C# - 如何从图像中删除除黑色以外的所有颜色

c# - 奇怪的 C# 动态行为

c# - 检查 decimal 是否指定为 2 dp 或更小

Java Class.cast() 和重载

Java:重载方法

c++ - 我正在尝试对运算符 '+'进行二进制重载,但输出错误,我不明白为什么?