2009-01-26 57 views
13

Tôi có một lớp được chia thành hai tệp. Một trong số đó được tạo, phần còn lại chứa nội dung không được tạo.asp.net: các lớp học một phần và thừa kế

Tôi muốn lớp học của mình được kế thừa từ một lớp cơ sở. Tôi có cần phải có cả hai tệp được kế thừa không? Hoặc sẽ lớp kế thừa từ lớp cơ sở nếu một trong hai partial class

Trong foo.vb tạo:

Partial Public Class Foo Inherits BaseClass

Trong foo.vb bằng tay tạo:

Partial Public Class Foo

Nó không có vẻ quan trọng (theo những gì tôi thấy trong Reflector, anyways).

Bất cứ ai có thể giải thích cách hoạt động của tính năng này? Trình biên dịch có đơn giản kết hợp cả hai?

+0

Câu hỏi hay! –

Trả lời

13

Chỉ một trong hai nhu cầu kế thừa.

Các lớp học một phần chỉ là thủ thuật biên dịch. Hai tệp của bạn được ghép lại với nhau trước khi biên dịch. Điều này có nghĩa rằng chỉ có một lớp cơ sở có thể được chỉ định, giống như trong các lớp bình thường.

Bạn có thể có điều này:

partial class one : base {} 
partial class one {} 

và điều này:

partial class one : base {} 
partial class one : base {} 

nhưng không này

partial class one : fu {} 
partial class two : bar {} 

vì người cuối cùng kết hợp thành:

class one : fu, bar {} 

bất hợp pháp. Bạn có thể trộn và kết hợp các giao diện, tuy nhiên, giống như trên một lớp bình thường.

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