2010-03-29 35 views
6

Ý nghĩa của ": cơ sở" trong bộ xử lý của lớp sau (MyClass) là gì? Vui lòng giải thích khái niệm đằng sau định nghĩa hàm dựng được đưa ra dưới đây cho lớp MyClass.Ý nghĩa của ": base" trong định nghĩa hàm tạo là gì?

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

Trả lời

18

Các lớp cơ sở là WorkerThread. Khi bạn tạo MyClass, một WorkerThread phải được tạo, sử dụng bất kỳ hàm tạo nào của nó.

Bằng cách viết base(data) bạn đang hướng dẫn chương trình sử dụng một hàm tạo của WorkerThread mất data làm tham số. Nếu bạn không làm điều này, chương trình sẽ cố gắng sử dụng hàm tạo mặc định - một hàm có thể được gọi không có tham số.

+6

Và đó constructor baseclass được đảm bảo để được thực thi * trước * các nhà xây dựng hiện hành được thực thi. –

0

Nó có nghĩa là bạn đang đi qua các tham số dữ liệu truyền cho constructor MyClass qua để các nhà xây dựng của lớp cơ sở (WorkerThread) có hiệu lực kêu gọi

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

Nó gọi hàm khởi tạo của lớp mà nó kế thừa từ và cung cấp các đối số theo.

Sắp xếp giống như gọi

new WorkerThread(data) 
-1

Một trường hợp hiếm hoi mà VB có thể rõ ràng hơn ...

Public Class MyClass 
    Inherits WorkerThread 

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

End Class 
+0

Tôi không thích rằng VB làm cho nó rõ ràng hơn bạn làm, nhưng thực tế vẫn còn rằng đây là. – StingyJack

Các vấn đề liên quan