Dal momento che provare a usarli causerà un errore, qual è la soluzione alternativa per ottenere lo stesso effetto di loro?
My Base Class:
public abstract class IPacket
{
public abstract int Identifier { get; set; }
public abstract void Handle();
}
Classe figlio:
public class DoSomething : IPacket
{
public override int Identifier
{
get
{
return 1;
}
}
public override void Handle()
{
// Do Something
}
}
Instradamento pacchetti in entrata:
Dictionary<Byte, IPacket> Packets = new Dictionary<byte, IPacket>
{
{DoSomething.Identifier, DoSomething} // <-- Not Possible
};
Packets[ID].Handle();
Fondamentalmente ottengo un pacchetto dal Server che contiene un identificatore. Io uso questo identificativo per trovare il gestore di quel pacchetto da un dizionario e passare il pacchetto al suo gestore.