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