我必须使用C#的C函数进行交互 该功能通过网络发送消息。
这是我在C#中的工作定义:
delegate void SendNetMessageDelegate(uint messageCode, ref MessageData messageData, uint messageSize);
并且MessageData的定义如下:
[StructLayout(LayoutKind.Sequential)]
internal struct MessageData { ... }
到目前为止,这些定义运作良好。
问题是有时我需要用另一个有效负载调用相同的函数。 这意味着我必须创建另一个带有“OtherMessageData”结构而不是“MessageData”的委托
所以我必须添加另一个SendNetMessageDelegate,它将另一个结构作为参考。
有更简单的方法吗? 所以我可以调用SendNetMessage(messageCode,ref AnyStructHere messageData,messageSize)
我尝试将参数类型更改为“object”,然后将我的结构转换为object,但这不起作用...
答案 0 :(得分:0)
泛型怎么样
delegate void SendNetMessageDelegate<TPayload>(uint messageCode, ref TPayload payload, uint messageSize);