Я читал, что вы не можете объявлять статические переменные/методы внутри родового класса, и я действительно не знаю, как решить мою проблему или обойти ее, поэтому я прошу вашего руководства.
То, что я хочу, - это общий "индекс", который расширит все мои основные классы.
Я создаю игровой движок, и пример состоит в том, что у меня будут разные игры, которые все продлят State
, который, в свою очередь, расширяет Nexus<State>
. Причина, по которой я хочу статическую голову и хвост, - это сохранить связанный список всех игр, так как они добавлены в этот список при создании.
Другим примером является то, что у меня будут разные игровые объекты, которые все расширяют GameObject
, который, в свою очередь, расширяет Nexus<GameObject>
.
Это индекс с именем Nexus
:
public abstract class Nexus<T>
{
private static T head = null;
private static T tail = null;
private T next = null;
private static int num = 0;
protected Nexus() { this.Add( (T)this ); }
public T Add( T obj )
{
((Nexus)obj).next = null;
if( num++ == 0 ) head = tail = obj;
else tail = ( tail.next = obj );
return obj;
}
}
Если у кого-то есть другое решение или обходной путь, я все уши!