В настоящее время я работаю над классом Packet для проекта C #.
В моей C ++-версии моего класса Packet у меня есть операторы извлечения и вставки, поэтому пакет с несколькими целыми числами / строками / и т. Д. Может быть встроен в как можно меньшее количество строк, как это возможно.
std::shared_ptr<Packet> p = std::make_shared<Packet>(PacketType::Test); //Create packet of type (Test)
*p << 3 << "John" << "Hates" << "Susan"; //append data to packet
myConn.SendPacket(p); //queue packet to be sent
Я пытаюсь выяснить, есть ли способ получить аналогичную функциональность в C # или я действительно буду вынужден иметь отдельную строку для каждого фрагмента данных, который подается / извлекается из пакета.
В C # я представляю, что эквивалент будет выглядеть примерно так ...
Packet p = new Packet(PacketType::Test); //Create packet of type (Test)
p.Append(3);
p.Append("John");
p.Append("Hates");
p.Append("Susan");
myConn.SendPacket(p); //queue packet to be sent
Можно ли как-нибудь сократить количество строк кода, не оказывая негативного влияния на производительность? Я не ищу, чтобы заполнить данные в строку. Я хочу, чтобы он оставался в виде двоичных данных.