Tôi đang làm việc trên một dự án liên quan đến rất nhiều giao tiếp và kế thừa, điều này đang bắt đầu hơi phức tạp và giờ tôi đã gặp sự cố.Sử dụng 'this' trong hàm tạo cơ sở?
Tôi có một trạng thái lớp trừu tượng có đối tượng Game làm đối số hàm tạo. Trong constructor của lớp Game của tôi, nó sẽ ở trong trạng thái. Ý tưởng là khi kế thừa từ lớp cơ sở trò chơi trừu tượng, khi gọi hàm tạo của lớp cơ sở, bạn cho nó một đối tượng trạng thái ban đầu. Tuy nhiên đối tượng này của Nhà nước có trong cùng một Trò chơi mà bạn đang tạo. Mã này trông giống như sau:
public class PushGame : ManiaGame
{
public PushGame() :
base(GamePlatform.Windows, new PlayState(this), 60)
{
}
}
Tuy nhiên điều này không hiệu quả. Tôi chỉ có thể giả định vì từ khóa 'này' không thể sử dụng được cho đến sau khi hàm tạo đã bắt đầu thực thi. Cố gắng sử dụng nó trong constructor của lớp cơ sở của bạn không hoạt động, rõ ràng. Vì vậy, cách giải quyết tốt nhất của tôi cho điều này là gì? Kế hoạch của tôi B là xóa bỏ đối số State khỏi hàm tạo của lớp Game và chỉ cần thiết lập trạng thái bên trong mã của hàm tạo sau đó.
Có cách nào dễ dàng hơn, ít xâm nhập hơn để thực hiện việc này không?
Vui lòng không thêm tiền tố vào tiêu đề của bạn bằng "C#". Đó là những gì các thẻ cho. –