在C#中重命名extern方法参数是否安全?

时间:2017-08-08 21:04:50

标签: c# dll unmanaged

我目前正在清理我们使用extern方法的一些遗留代码库。参数名称在命名约定方面都是完整的。我想巩固它们。

实施例

[DllImport("customdll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SetStatus(int new_status);

我可以安全地将new_status重命名为newStatus还是会违反合同?

ReSharper认为这是一个改变,但我想验证它。我无法找到它的文件(支持或反对)。

询问是否可以重命名方法名称本身,只是参数定义。

参考

1 个答案:

答案 0 :(得分:5)

是的,只要您使用正确的数据类型将它们保持在相同的顺序,就可以安全地更改参数的名称(但不能更改方法本身)。传统DLL中的参数由序数填充,而不是按名称填充。

如果在DllImport构造函数中使用EntryPoint参数,也可以更改方法本身的名称。

相关问题