public object this[FieldCode key] { get { object value = null; fields.TryGetValue ((byte)key, out value); return value; } set { if (value == null) fields.Remove((byte)key); else fields[(byte)key] = value; } }