public static Variant LoadFromBin(BinaryReader reader) { Variant result = new Variant(); result.DataType = reader.ReadByte(); switch (result.DataType) { case 2: result.Data = reader.ReadDouble(); break; case 3: result.Data = reader.ReadBoolean(); break; case 4: result.Data = PackedInt.LoadFromBin(reader); break; case 5: result.Data = StringIO.LoadFromBin(reader); break; case 6: result.Data = PackedVariant.LoadFromBin(reader); break; case 7: result.Data = VariantDict.LoadFromBin(reader); break; } return(result); }