/// <summary>\r
/// Class with handy static methods taking strings and returning objects\r
/// parsed from those strings. For all of these functions, white space is\r
- /// generally ignored, but any superfluous characters will make the parse fail.\r
+ /// generally ignored, but superfluous characters are not allowed.\r
/// </summary>\r
public class Parse\r
{\r
/// Parses a comment of an INI file.\r
/// </summary>\r
/// <param name="line">Text.</param>\r
- /// <returns>The comment.</returns>\r
+ /// <returns>The comment, or null if parsing failed.</returns>\r
public static string IniComment(string line)\r
{\r
Match match = Regex.Match(line, @"^;\s*(.*)\s*$");\r
/// </summary>\r
/// <typeparam name="T">An enumeration.</typeparam>\r
/// <param name="atom">Text.</param>\r
- /// <returns>The constant, or default(T) if parsing failed.</returns>\r
- public static T Constant<T>(string atom)\r
+ /// <returns>The constant, or null if parsing failed.</returns>\r
+ public static T? Constant<T>(string atom) where T : struct\r
{\r
try\r
{\r
- return (T)System.Enum.Parse(typeof(T), String(atom), true);\r
+ return (T)System.Enum.Parse(typeof(T), String(atom));\r
}\r
#pragma warning disable 0168\r
catch (System.Exception ex)\r
#pragma warning restore 0168\r
{\r
- return default(T);\r
+ return null;\r
}\r
}\r
\r
/// Parses a function.\r
/// </summary>\r
/// <param name="atom">Text.</param>\r
- /// <returns>An array two strings containing the function name and\r
+ /// <returns>An array with two strings containing the function name and\r
/// parameter-list, in that order, or null if parsing failed.</returns>\r
public static string[] Function(string atom)\r
{\r