我必须与 C# 中的 C 函数交互 该函数通过网络发送消息。
这是我在 C# 中的工作定义:
delegate void SendNetMessageDelegate(uint messageCode, ref MessageData messageData, uint messageSize);
MessageData 的定义如下:
[StructLayout(LayoutKind.Sequential)]
internal struct MessageData { ... }
这些定义到目前为止效果很好。
问题是有时我需要用另一个有效载荷调用同一个函数。 这意味着我将不得不创建另一个采用“OtherMessageData”结构而不是“MessageData”的委托(delegate)
所以我必须添加另一个 SendNetMessageDelegate 以另一个结构作为引用。
有没有更简单的方法? 所以我可以调用 SendNetMessage(messageCode, ref AnyStructHere messageData, messageSize)
我尝试将参数类型更改为“对象”,然后将我的结构转换为对象,但这没有用...
最佳答案
泛型怎么样
delegate void SendNetMessageDelegate<TPayload>(uint messageCode, ref TPayload payload, uint messageSize);
关于c# - 将指针传递给通用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8904277/