我可能会有所不同,但这并不意味着你的方法是错误的。
if(VaildateRadioGroupIsChecked(radioBttnAddrssCoYes, rdoBttnAddCorrectNo, "Check Addresss Correct") &&
VaildateRadioGroupIsChecked(rdoGroundFloorTrue, radioGroundFFalse, "Please Check Ground Floor Delivery") &&
VaildateRadioGroupIsChecked(rdoHomeTrue, radioMeet, "Please check Customer All day At Home"))
{
}
private bool VaildateRadioGroupIsChecked(RadioButton a, RadioButton b, string MessageToUser)
{
if(!a.Checked && !b.Checked) {
Messagebox.Show(MessageToUser);
return false;
}
return true;
}
当然,您可以进一步开发并不将 2 个单选按钮发送到函数中,而是将其包含的元素。这样,如果您有 3、4 或 n 个单选按钮,您可以在一个简单的调用中检查它们全部。
另一种众所周知的验证单选框被选中的技术是简单地在表单级别上保持一个默认为 false 的布尔变量,并在任何单选按钮被选中时更改为 true。然而,在这种情况下,这种技术将无法为您服务,因为您将需要 3 个布尔变量,而且与其他解决方案相比,代码将变得不必要地复杂。
回答您在评论中的问题,我可能会这样做:
string MessageToUser = VaildateRadioGroupIsChecked(radioBttnAddrssCoYes, rdoBttnAddCorrectNo, "Check Addresss Correct") +
VaildateRadioGroupIsChecked(rdoGroundFloorTrue, radioGroundFFalse, "Please Check Ground Floor Delivery") +
VaildateRadioGroupIsChecked(rdoHomeTrue, radioMeet, "Please check Customer All day At Home");
if(MessageToUser.Length == 0) {
} else {
Messagebox.Show(MessageToUser);
}
private string VaildateRadioGroupIsChecked(RadioButton a, RadioButton b, string MessageToUser)
{
if(!a.Checked && !b.Checked) {
return MessageToUser + "\n";
}
return string.Empty;
}