我正在使用C#和ASP.Net 3.5,想要从复选框中获取"Yes" / "No"值,而不是True / False。是否有简单的方法,还是需要使用"if"语句?
我正在使用C#和ASP.Net 3.5,想要从复选框中获取"Yes" / "No"值,而不是True / False。是否有简单的方法,还是需要使用"if"语句?
public static class CheckBoxExtensions
{
public static string IsChecked(this CheckBox checkBox)
{
return checkBox.Checked ? "Yes" : "No";
}
}
使用方法:
var checkBox = new CheckBox();
checkBox.Checked = true;
Console.WriteLine(checkBox.IsChecked());
// Outputs: Yes
您可以使用三元运算符来模拟所需的行为。
例如:
string answer = checkbox.Checked ? "是" : "否";
这样做非常完美。
如果出于某种原因,您想直接从复选框获取实际的“是”/“否”(我完全看不出这样做的理由),那么您可以对组件进行子类化,并将其替换为字符串而不是 true/false。不过这似乎有点傻,因为“是”/“否”实际上是一种人性化的表达方式。对我来说,以这种方式推导它也更容易维护代码,这也是相当标准的做法。
string YesNo = chkYesNo.Checked ? "Yes" : "No";
checkbox.Checked ? "Yes" : "No"
如果你想要更聪明,你可以使用字典:
static readonly Dictionary<bool, string> BooleanNames = new Dictionary<bool, string> {
{ true, "Yes" },
{ false, "No" }
};
BooleanNames[checkbox.Checked]
然而,你真的不应该这样做。
Dictionary<Boolean, String> strings = new Dictionary<Boolean, String>();
strings.Add(true, "Yes");
strings.Add(false, "No");
然后当你需要这个值时:
String yesNo = strings[checkbox.Checked];
我猜你正在使用一个asp.net复选框控件,并查看“Checked”属性。如果是这样,你需要一条语句将布尔值转换为是/否:
string yesNo = checkbox_control.Checked ? "Yes" : "No";
字符串 doesThisWork = (bool)chkBox.Checked ? "是的" : "不是"