Constructor chaining in C# refers to the ability of one constructor in a class to call another constructor in the same class. This allows you to reuse code and avoid duplicating initialization logic across multiple constructors. Constructor chaining is achieved using the this keyword.

using System;
 
public class Person
{
    private string name;
    private int age;
 
    public Person(string name, int age)
    {
        this.name = name; // 'this' refers to the current instance of the class
        this.age = age;
    }
 
    public Person(string name)
        : this(name, 0) // Calls the parameterized constructor with age set to 0
    {
        // Additional initialization if needed
    }
 
    public void PrintInfo()
    {
        Console.WriteLine($"Name: {name}, Age: {age}");
    }
}
 
class Program
{
    static void Main()
    {
        Person person1 = new Person("Alice", 30);
        person1.PrintInfo(); // Output: Name: Alice, Age: 30
 
        Person person2 = new Person("Bob");
        person2.PrintInfo(); // Output: Name: Bob, Age: 0
    }
}