ASP.Net复选框返回“是”或“否”值(而不是True / False)

我正在使用C#和ASP.Net 3.5,并尝试从复选框中获取“是”/“否”值,而不是True / False。 有简单的方法还是我需要做“if”语句?

一定要试试这个:

string doesThisWork = chkBox.Checked ? "Yes":"No" 

更多信息…

如何为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 
 string YesNo = chkYesNo.Checked ? "Yes" : "No"; 

您可以使用三元语句模拟所需的行为。

就像是

string answer = checkbox.Checked ? "Yes" : "No";

会你完美的。

如果由于某种原因你想从复选框中得到实际的Yes / No direct(我根本没有看到这个的原因)那么你可以inheritance组件而不是true / false它需要字符串。 虽然有效地说“是”/“否”是人性化的,但似乎有点愚蠢,对我而言,维持以这种方式推导它的代码较少,这是非常标准的。

我假设您正在使用asp.net复选框控件并查看“已检查”属性。 如果是这样,您需要一个语句将布尔值转换为是/否:

 string yesNo = checkbox_control.Checked ? "Yes" : "No"; 

您可以使用条件运算符 :

 checkbox.Checked ? "Yes" : "No" 

如果你想聪明,你可以使用字典:

 static readonly Dictionary BooleanNames = new Dictionary { { true, "Yes" }, { false, "No" } }; BooleanNames[checkbox.Checked] 

但是,你真的不应该。

只是为了给你一个no if语句替代(在这种情况下可能不是最好的方法,但是……):

 Dictionary strings = new Dictionary(); strings.Add(true, "Yes"); strings.Add(false, "No"); 

然后当你需要值时:

 String yesNo = strings[checkbox.Checked];