Что является значением ": базироваться" в 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;
}
}
Базовым классом является WorkerThread. Когда вы создаете MyClass, WorkerThread должен быть создан с использованием любого из его конструкторов.
Записывая base (data)
, вы инструктируете программу использовать один конструктор WorkerThread, который принимает data
в качестве параметра. Если вы не сделали этого , программа попытается использовать конструктор по умолчанию - тот, который можно вызвать без параметров.
Редкий случай, когда VB может быть яснее ...
Public Class MyClass
Inherits WorkerThread
Public Sub New(data)
MyBase.New(data)
End Sub
End Class
Он вызывает конструктор класса, от которого он наследуется, и предоставляет соответствующие аргументы.
Что-то вроде звонка
new WorkerThread(data)
Это означает, что вы передаете параметр данных, переданный конструктору MyClass, через конструктор базового класса (WorkerThread), фактически вызывая
public WorkerThread(object data)
{
this.ThreadData = data;
}