Tôi là một nhà phát triển C# và chưa có kinh nghiệm trong VB.NET.VB.NET - Gọi nhiều Constructors
kịch bản:
Namespace Presenters
Public Class BaseFooPresenter
' assuming the public default parameterless constructor
Public Sub New(ByVal strvar As String)
' TODO with strvar variabile
End Sub
End Class
Public Class FooPresenter
Inherits BaseFooPresenter
Public Sub New(ByVal boolvar As Boolean)
' TODO with boolvar variabile
End Sub
Public Sub New(ByVal boolvar As Boolean, _
ByVal objvar As Object)
MyBase.New(String.Empty)
Me.New(true)
' TODO with objvar variabile
End Sub
End Class
End Namespace
Với mã này ở các nhà xây dựng FooPresenter thứ hai tôi nhận được một lỗi
"gọi Constructor chỉ có hiệu lực tại báo cáo kết quả đầu tiên trong một constructor dụ."
tại địa chỉ:
Me.New(true)
Nếu tôi đảo ngược thứ tự tôi nhận được lỗi tại địa chỉ:
MyBase.New(String.Empty)
tôi có thể tạo ra một phương pháp SetValues (... các thông số ...) và gọi nó là từ hai nhà xây dựng nhưng không ai đó knwos một workaround để tránh lỗi này ?, Tại sao trình biên dịch không xác nhận khả năng để gọi các nhà xây dựng cơ bản trước khi xây dựng quá tải ?.
Có ai biết cách biện minh một cách hợp lý thực tế là không thể gọi hàm tạo lớp cơ sở và hàm tạo cấp lớp khác từ một hàm tạo cấp lớp cùng một lúc?
xin lỗi @Moonlight vì tôi rất mới trong stackoverflow và tôi không có đủ điểm danh tiếng (lúc bây giờ 14) bỏ phiếu câu trả lời :( – manuellt
bạn có thể đánh dấu câu trả lời cho câu hỏi của bạn (không phải biểu quyết mỏng, đánh dấu là câu trả lời) – Moonlight
thanx @Moonlight cho aproach xây dựng của bạn, tôi đang đánh dấu câu trả lời ngay bây giờ;) – manuellt