DEV Community

Russell Nguyen
Russell Nguyen

Posted on

Pattern Matching

Pattern Matching is an important feature from C# 7.
Here is an example to show how i can be used.

internal class Program
{
    static void Main(string[] args)
    {
        Rectangle rectangle = new Rectangle(5.0, 5.0);
        Circle circle = new Circle(5.0);
        Square square = new Square(5.0);

        var a1 = Area(rectangle);

        var a2 = Area(circle);

        var a3 = Area(square);
    }

    public static double Area (object shape)
    {
        if (shape is Rectangle r) return r.Width * r.Height;
        if (shape is Circle c) return c.Radius*2*Math.PI;
        if (shape is Square s) return s.Length*s.Length;
        return double.NaN;
    }
}

public class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }

    public Rectangle(double width, double height)
    {
        Width = width;
        Height = height;
    }
}

public class Circle
{
    public double Radius {  get; set; }

    public Circle(double radius)
    {
        Radius = radius;
    }
}

public class Square
{
    public double Length { get; set; }

    public Square(double length)
    {
        Length = length;
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)