Lambda Properties: Listing 1

Calculating a discount rate.

public class Foo
{
  public Func<Customer, decimal> GetDiscountRate { get; set; }
 
  public Foo()
  {
    this.GetDiscountRate = DefaultDiscountRate;
  }
 
  private decimal DefaultDiscountRate(Customer customer)
  {
    switch (customer.CustomerType)

    {
      case CustomerType.Probation:
        return 0.02m;
 
      case CustomerType.Normal:
        return 0.045m;
 
      case CustomerType.Preferred:
        return 0.07m;
 
      default:
        throw
        new ArgumentException("Unsupported CustomerType");
    }
  }
}

About the Author

Patrick Steele is a senior .NET developer with Billhighway in Troy, Mich. A recognized expert on the Microsoft .NET Framework, he’s a former Microsoft MVP award winner and a presenter at conferences and user group meetings.

comments powered by Disqus

Featured

  • Visual Studio 2026 Gives Copilot Built-In Skills -- and Makes Them Prove Their Worth

    Microsoft is moving Agent Skills beyond bring-your-own instructions by shipping expert-authored workflows with the IDE, while keeping them off by default until testing shows their benefits justify the additional token use.

  • Copilot AI Billing Shock Met with Meters, Caps and Token-Saving Tools

    GitHub is layering spending limits, expanded credit allowances and increasingly granular usage reporting onto Copilot, while Microsoft is reworking Visual Studio and VS Code to expose -- and reduce -- the cost of agentic development.

  • The AI-Powered Software Development Lifecycle

    René van Osnabrugge makes the case that AI's biggest opportunity in software development is not faster coding -- it's reducing the friction everywhere else in the SDLC.

  • Copilot Usage-Based Billing Gets a Token Dashboard

    Microsoft is keeping Visual Studio's new built-in Agent Skills switched off by default while a public dashboard measures whether their performance gains justify the additional tokens they may consume.

Subscribe on YouTube