c# 有人能解释一下这个布尔逻辑吗
// Example bool is true
bool t = true;
// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1
这会将 false 转换为 0,将 true 转换为 1,有人可以向我解释 t 是如何转换的吗? 1:0 有效吗?
// Example bool is true
bool t = true;
// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1
This converts false to 0 and true to 1, can someone explain to me how the t ? 1 : 0 works?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我相信编译器在内部会将语句内联为相当于:
Console.WriteLine(Convert.ToInt32(t));
此 Convert.x 方法检查传递的参数是否为 true,如果不是则返回 0。
I believe that internally the compiler will inline the statement to the equivalent of:
Console.WriteLine(Convert.ToInt32(t));
This Convert.x method checks to see if the passed parameter is true return 0 if it isn't.
(? *) 这是条件运算符。
条件运算符 (?:) 根据布尔表达式的值返回两个值之一。条件运算符的形式为
条件?第一个表达式:第二个表达式;
在你的情况下 (true?1:0 ) 因为条件为 true ,这肯定是将 i 的值设置为 1。
(? *) this is conditional operator.
The conditional operator (?:) returns one of two values depending on the value of a Boolean expression. The conditional operator is of the form
condition ? first_expression : second_expression;
here in you case (true?1:0 ) since the condition is true ,which is certainly setting value of i to 1.
有关更多信息,请查看 ?: 运算符
For more look ?: Operator
如果 t 等于 true 则 i=1 否则 i=0
三元运算符
if t equels true then i=1 else i=0
ternary operator
它是 C# 条件运算符。
也可以写为:
或
由于t 为 true,则打印 1。
It's the C# Conditional Operator.
Can also be written as:
or
Since t is true, it prints 1.
查看三元运算符。
等同于:
这种语法可以在多种语言中找到,甚至在 JavaScript 中也可以找到。
如果你把冒号换成“otherwise”,就可以把它想象成一个英语句子:
Look at the Ternary Operator.
Equates to:
This syntax can be found in a variety of languages, even javascript.
Think of it like an English sentence if you swap the colon for "otherwise":