Beispiel #1
0
        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);
        }