public static GameRecord Create(GameRecordType type) { GameRecord rec = null; switch (type) { case GameRecordType.CRYPTO_STATE: rec = new GameRecordCryptoState(); break; case GameRecordType.PACKET: rec = new GameRecordPacket(); break; default: throw new ArgumentException(string.Format("GameRecord.Create: unknown GameRecord type {0}", type)); } // msg is guaranteed to be non-null due to default case throw rec.type = type; return rec; }
public GameRecordBase(GameRecordType type) { GameRecordType = type; }