一个消息框内的数据验证和错误列表 c#

Data validation and list of errors within one message box c#

希望你们一切都好。我想请你指教。

我正在寻找一种在执行 OnClick 按钮之前验证数据的方法。 我确实有一些 ComboBoxes 有一些数据可供选择。目前我已经使用了一些解决方案,看起来确实很不错 "dirty" 我对此并不满意。

目前我正在使用类似的东西:

if(box1 == null)
{
   MessageBox.Show("Error 1");
}
if(box2 == null)
{
   MessageBox.Show("Error 2");
}
if(box3 == null)
{
   MessageBox.Show("Error 3");
}

如果我有 3 个字段为空,我将针对每个错误显示 3 次消息。如果错误为真,是否有一种方法可以在一个消息框中列出所有错误?

我在想这样的事情:

bool a = true;
bool b = true;
bool c = true;

a = (box1 == null);
b = (box2 == null);
c = (box3 == null);

if(a || b || c)
{
  //Display list of errors where condition is true
}

如果有任何建议,我将不胜感激。

非常感谢。

为此使用字符串生成器String builder

private object box1;
private object box2;
private object box3;

//The following code base could be in a button click event

StringBuilder errorMessages = new StringBuilder();

if(box1 == null)
{
   errorMessages.AppendLine("Error 1");
}
if(box2 == null)
{
   errorMessages.AppendLine("Error 2");
}
if(box3 == null)
{
   errorMessages.AppendLine("Error 3");
}

if(!string.IsNullOrWhiteSpace(Convert.ToString(errorMessages)))
{
    MessageBox.Show(errorMessages.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

像这样:

var errors = new List<string>();
if(box1 == null)
   errors.Add("Error 1");
if(box2 == null)
   errors.Add("Error 2");
if(box3 == null)
   errors.Add("Error 3");

if (errors.Count > 0) 
   MessageBox.Show(string.Join(Environment.NewLine, errors));