C# (如果有一行)?布尔是真的-给我绳子
尽管我读过很多stackoverflow的文章,但我还是无法用头脑来概括这一点 我检查页面是否具有如下特定属性值:C# (如果有一行)?布尔是真的-给我绳子,c#,.net,C#,.net,尽管我读过很多stackoverflow的文章,但我还是无法用头脑来概括这一点 我检查页面是否具有如下特定属性值: bool categoryCount = CurrentPage.HasValue("blogCategories"); 我想将其转换为一行if语句,以便将字符串解析为如下所示的类: string situation = (categoryCount.ToString() == "true") ? '' : ''; PS:我为我的想法/目标背后的逻辑缺失道歉。我是编程新手。您不
bool categoryCount = CurrentPage.HasValue("blogCategories");
我想将其转换为一行if语句,以便将字符串解析为如下所示的类:
string situation = (categoryCount.ToString() == "true") ? '' : '';
PS:我为我的想法/目标背后的逻辑缺失道歉。我是编程新手。您不需要将布尔值转换为字符串来确定它是否为真 如果categoryCount的布尔值为true,您知道它会返回什么吗 它返回布尔值true。如果categoryCount为true,则其字符串表示形式等于true为true。但categoryCount已经是真的了 与此完全相同:
bool x = categoryCount;
此外,C中的字符串使用双引号,而不是单引号
因此:
您不需要转换为字符串来使用三元。您可以简单地执行以下操作:
string situation = categoryCount ? "Executes if true" : "Executes if false";
三元条件不需要是字符串,只需要返回 那么:
string situation = (CurrentPage.HasValue("blogCategories"))
? "Has the value" : "Has NOT that value";
你应该改变两件事:
不要使用ToString==True,只需将布尔表达式放在三元运算符的条件部分:调用ToString效率很低,而且如果规范更改,它可能会实际停止工作。ToString返回True,带大写字母,因此它不会与代码一起工作;
使用字符串文字一些字符串,而不是字符文字“a”:结果应该是字符串,而不是字符。
与true相比,这将不起作用:
csharp> true.ToString()
"True"
csharp> true.ToString() == "true"
false
但是,即使它能工作,也相当不安全:如果.NET库的设计者后来改变主意,那么您的程序可能会停止正常工作。通常我认为最好不要依赖ToString方法的格式。它们往往是特定于区域性的,而且通常不会对输出格式提供硬约束。为什么要将布尔值转换为字符串?如果两个结果都返回相同的值,为什么还要使用此条件?我不知道你在问什么…不需要将bool转换为字符串。如果有任何类别,我想向网格添加一个类。所以,如果有一个类别我想添加,如果没有一个类我想添加。顺便说一句,我是编程新手,所以我为我的目标背后缺少的逻辑道歉。
string situation = (CurrentPage.HasValue("blogCategories"))
? "Has the value" : "Has NOT that value";
csharp> true.ToString()
"True"
csharp> true.ToString() == "true"
false