В целом, похоже, довольно много проблем с этим кодом, но если вы можете опубликовать подробности об ошибке, это может помочь нам помочь вам быстрее. Давайте посмотрим, может быть, вы преодолели это препятствие:
Packet
- это массив, поэтому похоже, что вам нужен доступ по индексу:
Packet[Enumerations.ClientPackets.CAddChar] = HandleAddChar;
Но массив является ссылочным типом, и поэтому его необходимо создавать - то есть даже с учетом вышеприведенного вы получите NullReferenceException
. Кроме того, HandleAddChar
является методом и требует аргументов согласно параметрам в качестве части его определения; и то, что вы намереваетесь сделать, - это не то, что вы бы выразили, даже передав соответствующие значения. Итак:
public PacketHandler()
{
Packet = new PacketDelegate[1];
Packet[0] = new PacketDelegate(HandleAddChar);
}
Обратите внимание, что я исключил использование Enumerations.ClientPackets.CAddChar
, поскольку в данном контексте это бессмысленно, идея состоит в том, что массив должен быть должен быть создан и иметь соответствующую емкость. И, наконец, вы не хотите вызывать HandleAddChar
здесь напрямую, нам нужна ссылка на делегат, вот что мы создаем и вставляем в массив.