1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-28 03:07:19 +08:00

Merge pull request #7638 from huoyaoyuan/type-switch

Use type switch in SerializationWriter
This commit is contained in:
Dean Herbert 2020-01-27 23:18:30 +09:00 committed by GitHub
commit 01cf417569
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -130,91 +130,91 @@ namespace osu.Game.IO.Legacy
} }
else else
{ {
switch (obj.GetType().Name) switch (obj)
{ {
case "Boolean": case bool boolObj:
Write((byte)ObjType.boolType); Write((byte)ObjType.boolType);
Write((bool)obj); Write(boolObj);
break; break;
case "Byte": case byte byteObj:
Write((byte)ObjType.byteType); Write((byte)ObjType.byteType);
Write((byte)obj); Write(byteObj);
break; break;
case "UInt16": case ushort ushortObj:
Write((byte)ObjType.uint16Type); Write((byte)ObjType.uint16Type);
Write((ushort)obj); Write(ushortObj);
break; break;
case "UInt32": case uint uintObj:
Write((byte)ObjType.uint32Type); Write((byte)ObjType.uint32Type);
Write((uint)obj); Write(uintObj);
break; break;
case "UInt64": case ulong ulongObj:
Write((byte)ObjType.uint64Type); Write((byte)ObjType.uint64Type);
Write((ulong)obj); Write(ulongObj);
break; break;
case "SByte": case sbyte sbyteObj:
Write((byte)ObjType.sbyteType); Write((byte)ObjType.sbyteType);
Write((sbyte)obj); Write(sbyteObj);
break; break;
case "Int16": case short shortObj:
Write((byte)ObjType.int16Type); Write((byte)ObjType.int16Type);
Write((short)obj); Write(shortObj);
break; break;
case "Int32": case int intObj:
Write((byte)ObjType.int32Type); Write((byte)ObjType.int32Type);
Write((int)obj); Write(intObj);
break; break;
case "Int64": case long longObj:
Write((byte)ObjType.int64Type); Write((byte)ObjType.int64Type);
Write((long)obj); Write(longObj);
break; break;
case "Char": case char charObj:
Write((byte)ObjType.charType); Write((byte)ObjType.charType);
base.Write((char)obj); base.Write(charObj);
break; break;
case "String": case string stringObj:
Write((byte)ObjType.stringType); Write((byte)ObjType.stringType);
base.Write((string)obj); base.Write(stringObj);
break; break;
case "Single": case float floatObj:
Write((byte)ObjType.singleType); Write((byte)ObjType.singleType);
Write((float)obj); Write(floatObj);
break; break;
case "Double": case double doubleObj:
Write((byte)ObjType.doubleType); Write((byte)ObjType.doubleType);
Write((double)obj); Write(doubleObj);
break; break;
case "Decimal": case decimal decimalObj:
Write((byte)ObjType.decimalType); Write((byte)ObjType.decimalType);
Write((decimal)obj); Write(decimalObj);
break; break;
case "DateTime": case DateTime dateTimeObj:
Write((byte)ObjType.dateTimeType); Write((byte)ObjType.dateTimeType);
Write((DateTime)obj); Write(dateTimeObj);
break; break;
case "Byte[]": case byte[] byteArray:
Write((byte)ObjType.byteArrayType); Write((byte)ObjType.byteArrayType);
base.Write((byte[])obj); base.Write(byteArray);
break; break;
case "Char[]": case char[] charArray:
Write((byte)ObjType.charArrayType); Write((byte)ObjType.charArrayType);
base.Write((char[])obj); base.Write(charArray);
break; break;
default: default: