Что является значением “: базироваться” в определении конструктора?

Что является значением ": базироваться" в costructor следующего класса (MyClass)? Объясните понятие позади определения конструктора, данного ниже для класса MyClass.

public class MyClass: WorkerThread
{
        public MyClass(object data): base(data) 
        { 
           // some code       

        }
}

public abstract class WorkerThread
{

        private object ThreadData;
        private Thread thisThread;

        public WorkerThread(object data)
        {
            this.ThreadData = data;
        }

        public WorkerThread()
        {
            ThreadData = null;
        }
}
7
задан Daniel Daranas 29 March 2010 в 11:58
поделиться

4 ответа

Базовым классом является WorkerThread. Когда вы создаете MyClass, WorkerThread должен быть создан с использованием любого из его конструкторов.

Записывая base (data) , вы инструктируете программу использовать один конструктор WorkerThread, который принимает data в качестве параметра. Если вы не сделали этого , программа попытается использовать конструктор по умолчанию - тот, который можно вызвать без параметров.

19
ответ дан 6 December 2019 в 09:18
поделиться

Редкий случай, когда VB может быть яснее ...

Public Class MyClass
  Inherits WorkerThread

  Public Sub New(data)
    MyBase.New(data)
  End Sub

End Class
-1
ответ дан 6 December 2019 в 09:18
поделиться

Он вызывает конструктор класса, от которого он наследуется, и предоставляет соответствующие аргументы.

Что-то вроде звонка

new WorkerThread(data)
2
ответ дан 6 December 2019 в 09:18
поделиться

Это означает, что вы передаете параметр данных, переданный конструктору MyClass, через конструктор базового класса (WorkerThread), фактически вызывая

public WorkerThread(object data)
{
    this.ThreadData = data;
}
0
ответ дан 6 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: