C#/.NET **無直接等價於 C++ union 的語言特性**(結構體显式佈局除外),LINQ 更無此能力。需根據具體場景選擇替代方案。
[StructLayout(LayoutKind.Explicit)]
struct UnionExample {
[FieldOffset(0)] public int IntValue;
[FieldOffset(0)] public float FloatValue;
[FieldOffset(0)] public byte Byte0;
[FieldOffset(1)] public byte Byte1;
// ...
}
**僅限 `struct`**,且需 `unsafe` 代碼上下文,跨平台行為依賴運行時實現。
class Variant<T> { public T Value; public string Tag; }
dynamic 或 object 存儲不同類型,運行時判斷。CSDN 相關帖:Link 環境下如何實現類似 C++ 聯合體
**建議**:優先用面向對象多態/泛型建模領域概念,僅在極少數底層互操作、協議解析場景考慮 StructLayout 內存重疊。