Debe pasar una variable para el parámetro out. No es necesario que inicialice la variable antes de pasarla:
MyMessagesType messages;
myResult = MakeMyCall(inputParams, out messages);
Por lo general, puede simplemente ignorar los 'mensajes' después de la llamada, a menos que los 'mensajes' necesiten eliminarse por algún motivo, como el uso de recursos limitados del sistema, en cuyo caso debe llamar a Dispose ():
messages.Dispose();
Si puede usar una cantidad significativa de memoria y permanecerá dentro del alcance por un tiempo, probablemente debería establecerse en nulo si es un tipo de referencia o en una nueva instancia predeterminada si es un tipo de valor, de modo que la basura colector puede reclamar la memoria:
messages = null; // Allow GC to reclaim memory for reference type.
messages = new MyMessageType(); // Allow GC to reclaim memory for value type.