【发布时间】:2010-06-13 07:41:41
【问题描述】:
我正在将 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 示例可以做类似的事情,我可以模仿?如果没有,有什么建议吗?
【问题讨论】:
标签: c# optional-parameters out-parameters