[英]ASP.Net checkbox to return a “Yes” or “No” value (instead of True / False)
我正在使用 C# 和 ASP.Net 3.5,并试图从复选框中获取“是”/“否”值,而不是 True/False。 有没有简单的方法或者我需要做“if”语句吗?
为此向 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(我看不出有任何原因),那么您可以对组件进行子类化,而不是使用 true/false 让它接受字符串。 这样做似乎有点愚蠢,尽管“是”/“否”实际上是一种人性化,但对我而言,以这种方式派生它的维护代码也较少,这是非常标准的。
您可以使用条件运算符:
checkbox.Checked ? "Yes" : "No"
如果你想变聪明,你可以使用字典:
static readonly Dictionary<bool, string> BooleanNames = new Dictionary<bool, string> {
{ true, "Yes" },
{ false, "No" }
};
BooleanNames[checkbox.Checked]
然而,你真的不应该。
我假设您正在使用 asp.net 复选框控件并查看 'Checked' 属性。 如果是这样,您需要一个语句将布尔值转换为是/否:
string yesNo = checkbox_control.Checked ? "Yes" : "No";
只是为了给你一个 no if 语句替代方案(在这种情况下可能不是最好的方法,但是......):
Dictionary<Boolean, String> strings = new Dictionary<Boolean, String>();
strings.Add(true, "Yes");
strings.Add(false, "No");
然后当您需要该值时:
String yesNo = strings[checkbox.Checked];
字符串 doThisWork = (bool)chkBox.Checked ? “是”:“不是”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.