public static bool TryParse(string s, out Gender result) { if (s != null) { var genders = GetAll(typeof(Gender)).Cast<Gender>(); var value = s.ToLower(); foreach (var gender in genders) { if (gender.InternalTryParse(value, out result)) { return true; } } } result = Gender.Unknown; return false; }
protected override bool InternalTryParse(string value, out Gender result) { var acceptibleValues = new List<string> { // Lowercase values "f", "female", }; if (acceptibleValues.Contains(value)) { result = Gender.Female; return true; } result = null; return false; }
protected virtual bool InternalTryParse(string value, out Gender result) { result = null; return false; }
protected override bool InternalTryParse(string value, out Gender result) { result = Gender.Unknown; return false; }