What does this colon (:) mean?

c#, constructor, constructor-chaining

Solution

It (along with the `this` keyword) is instructing the constructor to call another constructor within the same type before it, itself executes.

Therefore:

public ListNode(object dataValue)
    : this(dataValue, null)
{
}

effectively becomes:

public ListNode(object dataValue)
{
    data = dataValue;
    next = null;
}

Note that you can use `base` instead of `this` to instruct the constructor to call a constructor in the base class.

Problem

Before the `this` keyword is a colon. Can anyone explain what the colon means in this context? I don't believe this is inhertance. Thanks ``` using System; namespace LinkedListLibrary { class ListNode { private object data; private ListNode next; public ListNode(object dataValue) : this(dataValue, null) { } public ListNode(object dataValue, ListNode nextNode) { data = dataValue; next = nextNode; } public ListNode Next { get { return next; } set { next = value; } } public object Data { get { return data; } } } } ```

Original source

Related problems