public string?Validate()
 {
     if (string.IsNullOrWhiteSpace(Name))
     {
         return("Name must be set.");
     }
     if (string.IsNullOrWhiteSpace(Abbr))
     {
         return("Abbreviation must be set.");
     }
     if (ExpressionType == UExpressionType.Numerical)
     {
         if (Abbr.Trim().Length < 1 || Abbr.Trim().Length > 4)
         {
             return("Abbreviation must be between 1 and 4 characters long.");
         }
         if (Min >= Max)
         {
             return("Min must be smaller than max.");
         }
         if (DefaultValue < Min || DefaultValue > Max)
         {
             return("Default value must be between min and max.");
         }
     }
     else
     {
         var options = OptionValues.Split(',');
         if (options.Length < 2)
         {
             return("No options specified.");
         }
     }
     return(null);
 }
 public UExpressionDescriptor Build()
 {
     return(ExpressionType == UExpressionType.Numerical
     ? new UExpressionDescriptor(
                Name.Trim(), Abbr.Trim().ToLower(), Min, Max, DefaultValue, Flag)
     : new UExpressionDescriptor(
                Name.Trim(), Abbr.Trim().ToLower(), IsFlag, OptionValues.Split(',')));
 }