C# “是什么意思?”“基础”;在构造函数定义中?
在以下类别(MyClass)的构造函数中“:base”的含义是什么?请解释下面给出的MyClass类构造函数定义背后的概念C# “是什么意思?”“基础”;在构造函数定义中?,c#,.net,constructor,C#,.net,Constructor,在以下类别(MyClass)的构造函数中“:base”的含义是什么?请解释下面给出的MyClass类构造函数定义背后的概念 public class MyClass: WorkerThread { public MyClass(object data): base(data) { // some code } } public abstract class WorkerThread {
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;
}
}
这意味着您正在将传递给MyClass构造函数的数据参数传递给基类(WorkerThread)的构造函数(实际上是调用
public WorkerThread(object data)
{
this.ThreadData = data;
}
基类是WorkerThread。创建MyClass时,必须使用其任何构造函数创建WorkerThread
通过编写
base(data)
命令程序使用一个WorkerThread的构造函数,该构造函数将data
作为参数。如果您没有这样做,程序将尝试使用默认构造函数—一个可以不带参数调用的构造函数。它调用它从中继承的类的构造函数,并提供相应的参数
有点像打电话
new WorkerThread(data)
一个罕见的情况下,VB可能更清楚
Public Class MyClass
Inherits WorkerThread
Public Sub New(data)
MyBase.New(data)
End Sub
End Class
基类构造函数保证在当前构造函数执行之前执行。我不喜欢VB让它比你更清楚,但事实是这是事实。