如何将c++联合类型转换为c#代码
本文关键字:类型转换 代码 c++ | 更新日期: 2023-09-27 18:12:51
可能重复:
C#中的C++并集
#define AVEC3(T) union { T v3[3]; struct { T x,y,z; }; }
#define AMAT3x3(T) union { '
T v9[9], m3x3[3][3]; '
struct { T v3x[3], v3y[3], v3z[3]; }; '
struct { AVec3<T> vecx, vecy, vecz; }; '
struct { AVec3<T> right, up, back; }; '
struct { T xx, xy, xz, yx, yy, yz, zx, zy, zz; }; '
我不知道如何将上面的代码(c++(转换为c#版本。假设T是双重类型。
C#与union
没有相似的概念,但有一个技巧可以获得相同的功能。请参阅此处使用FieldOffset
属性的更多信息:C#等效于C"并集"?来自MSDN
来自MSDN的文章(有点简化(:
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
struct ByteArray {
[FieldOffset(0)]
public byte Byte1;
[FieldOffset(0)]
public int Int1;
[FieldOffset(0)]
public int Int2;
}