When and why should I use ClassName : this(null)?

c#, constructor, parameters

Solution

This permits the single-param constructor to have all the logic, so it isn't repeated.

public ClassName() : this(null) {}

public ClassName(string s)
{
    // logic (code)
    if (s != null) {
        // more logic
    }
    // Even more logic
}

I hope it's clear that the "logic" and "even more logic" would have needed to be repeated in the parameterless constructor if not for the `this(null)`.

Problem

i can't understand the difference between a simple bare ``` Public ClassName() {} ``` and ``` Public ClassName() : this(null) {} ``` I know I can use it only if i have a `+1` overloaded ctor, but I can't understand the advantages of `defining the parameterless constructor` this way.

Original source

Related problems