Я использую Lidgren и для каждого нового типа сообщений, которые я делаю, в итоге я пишу один и тот же код. Я создаю экземпляр NetOutgoingMessage
, запуская на нем различные вызовы назначения, а затем отправляя его, когда я закончил. Создание и отправка одинаковы, поэтому я хочу написать оболочку, чтобы сделать это для меня, но это класс sealed
, а не IDisposable
. То, что я делаю, это что-то вроде:
NetOutgoingMessage om = server.CreateMessage();
om.Write(messageType);
om.Write(data1);
om.Write(data2);
server.SendMessage(om, server.Connections, NetDeliveryMethod.UnreliableSequenced, 0);
И я хочу сделать что-то вроде:
using(AutoNetOutgoingMessage om(server, messageType, NetDeliveryMethod.UnreliableSequenced))
{
om.Write(data1);
om.Write(data2);
}
Очевидно, я не могу сделать using
, так есть ли другой общий способ, если вы реализуете такие функции? Я не ищу невероятно сложное решение, так как это просто поддержка для меня, поэтому у меня нет проблем с повторением кода для каждого сообщения. Но мне любопытно, есть ли забавный трюк С#, о котором я не знаю.