public static IOscValue Parse(char typeTag, BinaryReader reader) { switch (typeTag) { case 'i': return OscInt.Parse(reader); case 'f': return OscFloat.Parse(reader); case 's': return OscString.Parse(reader); case 'b': return OscBlob.Parse(reader); case 'T': return new OscTrue(); case 'F': return new OscFalse(); case 'N': return new OscNull(); case 'I': return new OscImpulse(); case 't': return OscTimeTag.Parse(reader); case 'c': return OscColor.Parse(reader); case 'm': return OscMidi.Parse(reader); default: throw new ArgumentException("No such type tag as " + typeTag); } }