Что означает это двоеточие (:)?

Передthis Ключевое слово - двоеточие. Кто-нибудь может объяснить, что означает в этом контексте двоеточие? Я не верю, что это наследство.

Спасибо

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;
            }
        }


    }
}

Ответы на вопрос(7)

Это конструктор цепочки, так что конструктор с последующим: this call будет цепляться к ctor, который соответствует подписи.

Так что в этом случае

public ListNode(object dataValue)

звонит

public ListNode(object dataValue, ListNode nextNode)

с нулем в качестве второго параметра через: this(dataValue, null)

также стоит отметить, что ctor, вызываемый через двоеточие, выполняется перед ctor, который был вызван для инициализации объекта.

Код говорит другому конструктору выполнить с предоставленными аргументами перед выполнением тела текущего конструктора.

Конструктор цепочки аргументов. Также есть & quot ;: base () & quot; для цепочки вызова конструктора по базовому типу.

Это (наряду сthis Ключевое слово) инструктирует конструктор вызывать другой конструктор в том же типе, прежде чем он сам выполнится.

Следовательно:

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

эффективно становится:

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

Обратите внимание, что вы можете использоватьbase вместоthis поручить конструктору вызвать конструктор в базовом классе.

Нет, это позволяет выполнить существующую перегрузку конструктора (с двумя параметрами) перед выполнением тела нового конструктора.

Это самый простой способ повторно использовать код конструктора в нескольких перегрузках конструктора.

Он вызывает другой конструктор ListNode. Вы можете сделать то же самое с ключевым словом base, чтобы вызвать конструктор класса, из которого вы производите.

Это означает, что перед запуском тела запустите конструктор с параметрами объекта и ListNode.

Ваш ответ на вопрос