Có vẻ như không có cú pháp ngôn ngữ để chỉ định cả hàm tạo này() và cơ sở(). Được cung cấp mã sau:phương thức này() và cơ sở() trong C#
public class Bar : Foo
{
public Bar()
:base(1)
//:this(0)
{ }
public Bar(int schmalue)
:Foo(1)
{
//Gobs of initialization code
...
Schmalue = schmalue;
}
public int Schmalue { get; private set; }
}
public class Foo
{
public Foo()
{
Value = 0;
}
public class Foo(int value)
{
Value = value;
}
public int Value { get; private set; }
}
Trình biên dịch cho tôi lỗi rằng '{' được mong đợi khi bỏ ghi chú: gọi (0) này. Điều này là khó chịu bởi vì nó làm cho tôi yếu tố ra mã của tôi thành một phương pháp riêng, khi chức năng này được cung cấp rõ ràng để ngăn chặn một điều như vậy.
Tôi chỉ làm điều này sai? Tôi đã cố gắng không có dấu phân cách, dấu chấm phẩy, dấu phẩy ... Có vẻ như đây chỉ là sự giám sát từ nhóm dev. Tôi quan tâm đến lý do tại sao điều này được bỏ qua, nếu tôi đang đi về điều này một cách sai lầm hoặc nếu ai có đề xuất tốt cho các lựa chọn thay thế.
bản sao có thể có của [Gọi hàm dựng ngược và hàm tạo cơ sở trong C#] (http://stackoverflow.com/questions/335286/calling-overriden-constructor-and-base-constructor-in-c) – Oded
Cảm ơn tất cả các bạn của câu trả lời. Về bản chất, vấn đề là hàm này() cũng có thể gọi một hàm tạo cơ bản khác. – Sprague