如何将 c++ 联合类型转换为 c# 代码? [复制]
Posted
技术标签:
【中文标题】如何将 c++ 联合类型转换为 c# 代码? [复制]【英文标题】:How to convert c++ union type into c# code? [duplicate] 【发布时间】:2011-11-01 08:45:23 【问题描述】:可能重复:C++ union in 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 是 double 类型。
【问题讨论】:
【参考方案1】:C# 没有与union
类似的概念,但有一个技巧可以获得相同的功能,请参阅此处使用FieldOffset
属性的更多信息:C# equivalent to C "union"? from 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;
【讨论】:
我已经浏览过了,但它没有显示结构内数组的示例。以上是关于如何将 c++ 联合类型转换为 c# 代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 C++ 转换为 C# 代码而 statmernt 代码递减
当我们使用winapis将字符串作为参数传递时,如何将c#字符串转换为c++字符串