Named arguments make a method call show which value belongs to which parameter.

named argument A named argument uses the parameter name in the call.

Named Arguments

discount
NamedArguments.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static int FinalPrice(int price, int discount)
    {
        return price - discount;
    }

    static void Main()
    {
        int discount = 2;
        int price = 12;
        int total = FinalPrice(discount: discount, price: price);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"total={total}");
    }
}
using System;

class Program
{
    static int FinalPrice(int price, int discount)
    {
        return price - discount;
    }

    static void Main()
    {
        int discount = 0;
        int price = 12;
        int total = FinalPrice(discount: discount, price: price);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"total={total}");
    }
}
using System;

class Program
{
    static int FinalPrice(int price, int discount)
    {
        return price - discount;
    }

    static void Main()
    {
        int discount = 5;
        int price = 12;
        int total = FinalPrice(discount: discount, price: price);

        Console.WriteLine($"discount={discount}");
        Console.WriteLine($"total={total}");
    }
}
  1. discount ← 2, price ← 12

    10static void Main()11{12    int discount→ 2 = 2; //@discount=0, 513    int price→ 12 = 12;14    int total = FinalPrice(discount2: discount, price12: price);
  2. static int FinalPrice(int price, int discount)

    4{5    static int FinalPrice(int price12, int discount2)6    {7        return price12 - discount2;8    }
  3. total ← 10

    13    int price = 12;14    int total→ 10 = FinalPrice(discount2: discount, price12: price);1516    Console.WriteLine($"discount={discount2}");17    Console.WriteLine($"total={total10}");18}
    outputdiscount=2
    total=10
  1. discount ← 0, price ← 12

    10static void Main()11{12    int discount→ 0 = 0;13    int price→ 12 = 12;14    int total = FinalPrice(discount0: discount, price12: price);
  2. static int FinalPrice(int price, int discount)

    4{5    static int FinalPrice(int price12, int discount0)6    {7        return price12 - discount0;8    }
  3. total ← 12

    13    int price = 12;14    int total→ 12 = FinalPrice(discount0: discount, price12: price);1516    Console.WriteLine($"discount={discount0}");17    Console.WriteLine($"total={total12}");18}
    outputdiscount=0
    total=12
  1. discount ← 5, price ← 12

    10static void Main()11{12    int discount→ 5 = 5;13    int price→ 12 = 12;14    int total = FinalPrice(discount5: discount, price12: price);
  2. static int FinalPrice(int price, int discount)

    4{5    static int FinalPrice(int price12, int discount5)6    {7        return price12 - discount5;8    }
  3. total ← 7

    13    int price = 12;14    int total→ 7 = FinalPrice(discount5: discount, price12: price);1516    Console.WriteLine($"discount={discount5}");17    Console.WriteLine($"total={total7}");18}
    outputdiscount=5
    total=7