public MessageDescriptorBuilder <T> Message <EmbeddedT>(int fieldNum, Func <T, EmbeddedT> valueGetter, Action <T, EmbeddedT> valueSetter, MessageDescriptor <EmbeddedT> embeddedDescriptor, Func <T, bool> hasValueFunc = null) where EmbeddedT : new() { return(Add(FieldSetting <T> .CreateMessage <EmbeddedT>(fieldNum, valueGetter, valueSetter, embeddedDescriptor, hasValueFunc))); }