public bool WriteObject([NotNullWhen(true)] object? @object) { if (@object == null) { _writer.WriteByteZero(); return(false); } if (_objectIdMap == null) { _objectIdMap = new Dictionary <object, uint>(); } uint cid; if (_objectIdMap.TryGetValue(@object, out cid)) { _writer.WriteVUInt32(cid); return(false); } _lastId++; _objectIdMap.Add(@object, _lastId); _writer.WriteVUInt32(_lastId); return(true); }