public MessageDescriptorBuilder <T> Enum <E>(int fieldNum, Func <T, E> valueGetter, Action <T, E> valueSetter, Func <T, bool> hasValueFunc = null)
 {
     return(Add(FieldSetting <T> .CreateEnum <E>(fieldNum, valueGetter, valueSetter, hasValueFunc)));
 }