[英]how can i check that string variable represent a point struct?
實現此目標的最快且可能最干凈的方法是為Point.Parse
實現自己的TryParse
方法:
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()
和string.Substring()
(或RegEx.Match()
)和double.TryParse()
,但是基本上是在重建Point.Parse()
並可以更好地返回new Point { X = parsedX, Y = parsedY }
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.