Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “是什么意思?”“基础”;在构造函数定义中?_C#_.net_Constructor - Fatal编程技术网

C# “是什么意思?”“基础”;在构造函数定义中?

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 {

在以下类别(MyClass)的构造函数中“:base”的含义是什么?请解释下面给出的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;
        }
}

这意味着您正在将传递给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让它比你更清楚,但事实是这是事实。