我目前正在将一些本机代码移植到 C#,它由各种结构、委托、枚举和外部方法调用组成。
结构中的某些字段期望应用某些常量。列出结构中的常量而不是单独的位置似乎是合乎逻辑的,因为这应该使所有内容都井井有条,但是我不确定在编组/与本机调用的互操作性期间这会对结构产生什么影响。
比如说我的结构是这样定义的:
[StructLayout(LayoutKind.Sequential)]
public struct NATIVE_STRUCTURE
{
public int Value;
}
此实例中的值可能需要以下常量之一
VALUE1 = 0x0001;
VALUE2 = 0x0002;
那么像这样编写这些结构对我来说是否安全:
[StructLayout(LayoutKind.Sequential)]
public struct NATIVE_STRUCTURE
{
public int Value;
public const int VALUE1 = 0x0001;
public const int VALUE2 = 0x0002;
}
任何人都可以阐明这可能如何影响运行时的代码(如果有的话)。谢谢。