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