我正在使用C#和ASP.Net 3.5,并尝试从复选框中获取“是”/“否”值,而不是True / False。有简单的方法还是我需要做“if”语句?
答案 0 :(得分:10)
答案 1 :(得分:5)
如何为CheckBox类添加扩展方法:
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
答案 2 :(得分:1)
string YesNo = chkYesNo.Checked ? "Yes" : "No";
答案 3 :(得分:1)
您可以使用三元语句模拟所需的行为。
像
这样的东西 string answer = checkbox.Checked ? "Yes" : "No";
你会做得很完美。
如果由于某种原因你想从复选框中获得实际的Yes / No direct(我根本没有看到这个原因)那么你可以继承组件而不是true / false它需要字符串。看起来有点愚蠢,尽管有效的“是”/“否”是人性化的,对我而言,维持这种方式的代码较少,这是相当标准的。
答案 4 :(得分:0)
您可以使用conditional operator:
checkbox.Checked ? "Yes" : "No"
如果你想聪明,你可以使用字典:
static readonly Dictionary<bool, string> BooleanNames = new Dictionary<bool, string> {
{ true, "Yes" },
{ false, "No" }
};
BooleanNames[checkbox.Checked]
然而,你真的不应该。
答案 5 :(得分:0)
我认为您正在使用asp.net复选框控件并查看“已检查”属性。如果是这样,您需要一个语句将布尔值转换为是/否:
string yesNo = checkbox_control.Checked ? "Yes" : "No";
答案 6 :(得分:0)
只是给你一个no if语句替代(在这种情况下可能不是最好的方法,但是......):
Dictionary<Boolean, String> strings = new Dictionary<Boolean, String>();
strings.Add(true, "Yes");
strings.Add(false, "No");
然后当你需要值时:
String yesNo = strings[checkbox.Checked];
答案 7 :(得分:0)
string doThisWork = (bool)chkBox.Checked ? "是":"否"