通常的C#相当于“再解释”的,是用你想要重新解释的那类领域界定“/code”。 这种做法在大多数情况下都是有效的。 在你看来,这样做是为了:
[StructLayout(LayoutKind.Explicit)]
struct BoolByte
{
[FieldOffset(0)]
public bool Bool;
[FieldOffset(0)]
public byte Byte;
}
然后,你可以做这样的事情:
BoolByte bb = new BoolByte();
bb.Bool = true;
int myInt = bb.Byte;
请注意,你只需要一度启动变量,然后可以像你一样制定<条码>Bool并检索<条码>Byte。 这种做法应当与涉及不安全守则、呼吁方法等的任何办法一样或更好,特别是在处理任何部门预测问题上。
必须指出,如果你能够读到<条码>bool,作为<条码>,则当然任何人均可将write a <条码>bool/code>作为<条码>的条码>,以及实际的<条码>int。 <代码>bool 缩略语 或不得<代码>1。 可在技术上:any 非零价值。
尽管如此,这将使法典更加难以维持。 由于对“<>真实<><>代码/代码>价值实际上看不出的保证,而且仅仅因为增加了复杂性。 极难陷入现实世界的景象,而这种情景却因你再次问世的错失行为而受到困扰。 即使你有合法的现实世界榜样,但可以辩称,它会以其他方式得到更好的解决。 确切的备选办法取决于具体的实际世界实例,但一个例子可能是,以允许按特定条件进行批量处理而不是对每个要素进行测试的方式保存数据。
我强烈建议不要做这样的事情,直到你能够证明现实世界问题,并且已经用尽了其他更加直观和可以维持的选择。