Point.Parse("SomeText");
我如何检查给定的字符串是否代表一个点?
解析方法文档在这里
实现这一目标的最快且可能最干净的方法是实现您自己的TryParse
方法Point.Parse
:
public bool TryParse(string source, out Point point)
{
try
{
point = Point.Parse(source);
}
catch (FormatException ex)
{
point = default(Point);
return false;
}
return true;
}
然后你可以像这样消费:
Point point;
if (!TryParse("12, 13", out point))
{
// We have an invalid Point!
}
如果您的字符串不是有效点,该方法将返回 false,您可以立即执行任何需要完成的操作。如果解析成功,该out
参数将包含已解析Point
的值,否则将包含 的默认值Point
,可能为 (0, 0)。
请注意,这里的异常被抑制了,但这不应该给你带来任何麻烦。如果需要,您可以在设置后重新抛出它point
。
Point.Parse()
如果你真的阅读了文档,你会看到在三种情况下会抛出异常:
因此,您必须:
string.IndexOf()
and string.Substring()
(or RegEx.Match()
) and double.TryParse()
,但是你基本上是在重建Point.Parse()
并且可以更好地返回 a new Point { X = parsedX, Y = parsedY }
。