我正在将一个用 C++ 编写的库翻译成 C#,并且关键字“union”存在一次。在一个结构中。
将它翻译成 C# 的正确方法是什么?它有什么作用?它看起来像这样;
struct Foo {
float bar;
union {
int killroy;
float fubar;
} as;
}
原文由 Viktor Elofsson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在将一个用 C++ 编写的库翻译成 C#,并且关键字“union”存在一次。在一个结构中。
将它翻译成 C# 的正确方法是什么?它有什么作用?它看起来像这样;
struct Foo {
float bar;
union {
int killroy;
float fubar;
} as;
}
原文由 Viktor Elofsson 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以编写一个简单的包装器,但在大多数情况下只使用一个对象就不会那么混乱了。
public class MyUnion
{
private object _id;
public T GetValue<T>() => (T)_id;
public void SetValue<T>(T value) => _id = value;
}
原文由 Kenneth Parker 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
您可以为此使用显式字段布局:
未经测试。这个想法是两个变量在你的结构中具有相同的位置。当然,您只能使用其中之一。
结构教程 中有关联合的更多信息