Tôi đang cố gắng để có được vào C# generics và đã tạo ra một máy nhà nước với mô hình nhà nước và bây giờ tôi cố gắng refactor.C# generics, tham khảo chéo các lớp học cho mô hình nhà nước
Tôi có trạng thái có tham chiếu đến đối tượng đang hoạt động.
public abstract class AbstractState<T> where T : StatefulObject {
protected T statefulObject;
public AbstractState(T statefulObject) {
this.statefulObject = statefulObject;
}
}
và tôi có đối tượng có trạng thái, điều này phải có tham chiếu đến trạng thái hiện tại của nó.
public abstract class StatefulObject<T> : MonoBehaviour where T : AbstractState<StatefulObject<T>> {
public T state;
}
Nhưng nó không hoạt động ("loại không thể được sử dụng làm thông số loại 't' theo loại hoặc phương pháp chung").
public class Monster : StatefulObject<MonsterState> {
}
public abstract class MonsterState : AbstractState<Monster> {
}
Đây có phải là có thể:
một cái gì đó như thế này Những gì tôi muốn đạt được là gì? Nếu nó không theo cách này, có cái nào khác không? Cám ơn.
Bạn khai báo 'StatefulObject' như một loại chung (đoạn 2) và sử dụng nó như một loại không chung chung (đoạn mã 1)? –