void ICodedInputStream.ReadEnumArray <T>(uint fieldTag, string fieldName, ICollection <T> list, out ICollection <object> unknown) { unknown = null; List <object> array = new List <object>(); if (ReadEnumArray(fieldName, array)) { foreach (object rawValue in array) { T val = default(T); if (EnumParser <T> .TryConvert(rawValue, ref val)) { list.Add(val); } else { if (unknown == null) { unknown = new List <object>(); } unknown.Add(rawValue); } } } }
bool ICodedInputStream.ReadEnum <T>(ref T value, out object rawValue) { rawValue = null; if (ReadEnum(ref rawValue)) { if (!EnumParser <T> .TryConvert(rawValue, ref value)) { value = default(T); return(false); } return(true); } return(false); }