在 C# 中重命名外部方法参数是否安全?
Is it safe to rename extern method parameters in C#?
我目前正在清理我们使用 extern
方法的一些遗留代码库。就命名约定而言,参数名称无处不在。我想合并它们。
例子
[DllImport("customdll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SetStatus(int new_status);
我可以安全地将 new_status
重命名为 newStatus
还是会破坏合同?
ReSharper 建议将其作为更改,但我想验证一下。我找不到关于它的文档(支持或反对)。
我不是询问是否可以重命名方法名称本身,只是参数定义。
参考资料
- Alias for function
是的,更改参数名称(但不是方法本身)是安全的,只要您使用正确的数据类型保持它们的顺序相同。传统 DLL 中的参数按顺序填充,而不是按名称填充。
如果在 DllImport 构造函数中使用 EntryPoint 参数,您还可以更改方法本身的名称。
我目前正在清理我们使用 extern
方法的一些遗留代码库。就命名约定而言,参数名称无处不在。我想合并它们。
例子
[DllImport("customdll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SetStatus(int new_status);
我可以安全地将 new_status
重命名为 newStatus
还是会破坏合同?
ReSharper 建议将其作为更改,但我想验证一下。我找不到关于它的文档(支持或反对)。
我不是询问是否可以重命名方法名称本身,只是参数定义。
参考资料
- Alias for function
是的,更改参数名称(但不是方法本身)是安全的,只要您使用正确的数据类型保持它们的顺序相同。传统 DLL 中的参数按顺序填充,而不是按名称填充。
如果在 DllImport 构造函数中使用 EntryPoint 参数,您还可以更改方法本身的名称。