我找不到答案,可能是因为我没有以适当的方式提出这个问题。
所以,我正在编写一个类内部的方法,并且在某些时候我希望它测试字符串的格式。如果它不正确,我希望它向用户显示一条消息,并停止执行,以便用户可以修复该错误。我有这个:
if (Is not properly formated)
{
//get error information
//show error box with the formation error line
MessageBox.Show(String.Format(
"Error message{0}",
errorLine.ToString()), "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}
当然,这将停止执行此方法,但我想停止执行main方法(按钮单击方法)。
在C#中执行此操作的最佳方法是什么?
答案 0 :(得分:2)
你应该在C#中使用异常,例如
private void Calculate(string[] lines)
{
try
{
lines.ForEach(Validate);
// process lines
}
catch(InvalidArgumentException ex)
{
MessageBox.Show(...);
}
}
private void Validate(string s)
{
if(s.IsNullOrEmpty)
throw new InvalidArgumentException(/* some details here*/);
}
答案 1 :(得分:1)
如果值有效,您可以编写一个返回true
的验证方法,并可选择返回string
告诉错误:
private bool Validate(string s, out string error)
{
if (string.IsNullOrEmpty(s))
{
error = "s is null";
return false;
}
else
{
error = null;
return true;
}
}
然后叫它:
string error;
if (!Validate(null, out error))
{
MessageBox.Show(error);
// Do something
}
如果您要构建可能错误列表,则可以使用string
代替enum
。