我正在将 API 从 C 转换为 C#,其中一个函数分配了许多相关对象,其中一些是可选的。C 版本接受几个指针参数,这些参数用于返回对象的整数句柄,调用者可以传递NULL
一些指针以避免分配这些对象:
void initialize(int *mainObjPtr, int *subObjPtr, int *anotherSubObjPtr);
initialize(&mainObj, &subObj, NULL);
对于 C# 版本,明显的翻译将使用out
参数而不是指针:
public static void Initialize(out int mainObj, out int subObj,
out int anotherSubObj);
...但这无法指出哪些对象是不需要的。是否有任何著名的 C# API 示例做类似的事情,我可以模仿?如果没有,有什么建议吗?