Convert to switch expression.

This commit is contained in:
2022-11-13 19:59:23 +00:00
parent cd2d27c2cf
commit 98f08919d6

View File

@@ -249,21 +249,16 @@ public static class Marshal
properties)) properties))
return ByteArrayToStructureLittleEndian<T>(bytes); return ByteArrayToStructureLittleEndian<T>(bytes);
switch(properties.Endian) return properties.Endian switch
{ {
case BitEndian.Little: BitEndian.Little => properties.HasReferences ? ByteArrayToStructureLittleEndian<T>(bytes)
return properties.HasReferences ? ByteArrayToStructureLittleEndian<T>(bytes) : SpanToStructureLittleEndian<T>(bytes),
: SpanToStructureLittleEndian<T>(bytes); BitEndian.Big => properties.HasReferences ? ByteArrayToStructureBigEndian<T>(bytes)
: SpanToStructureBigEndian<T>(bytes),
case BitEndian.Big: BitEndian.Pdp => properties.HasReferences ? ByteArrayToStructurePdpEndian<T>(bytes)
return properties.HasReferences ? ByteArrayToStructureBigEndian<T>(bytes) : SpanToStructurePdpEndian<T>(bytes),
: SpanToStructureBigEndian<T>(bytes); _ => throw new ArgumentOutOfRangeException()
};
case BitEndian.Pdp:
return properties.HasReferences ? ByteArrayToStructurePdpEndian<T>(bytes)
: SpanToStructurePdpEndian<T>(bytes);
default: throw new ArgumentOutOfRangeException();
}
} }
/// <summary>Swaps all members of a structure</summary> /// <summary>Swaps all members of a structure</summary>