static void WriteSingle(float value, ProtoWriter writer) { if (writer == null) { throw new ArgumentNullException("writer"); } switch (writer.wireType) { case WireType.Fixed32: #if FEAT_SAFE ProtoWriter.WriteInt32(BitConverter.ToInt32(BitConverter.GetBytes(value), 0), writer); #else ProtoWriter.WriteInt32(*(int *)&value, writer); #endif return; case WireType.Fixed64: ProtoWriter.WriteDouble((double)value, writer); return; default: throw CreateException(writer); } }