[英]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.