我正在尝试将C ++程序转换为C#。我在下面发表了一系列声明。
int X;
int P = 10;
int Q = 5;
X = P < Q;
如果X是bool值,对我来说很有意义。但是X是整数。我想知道X的输出是什么。它可能是C ++中非常基本的语法。对不起我的无知。我是在C#中的同等声明之后。任何建议都表示赞赏。
由于
答案 0 :(得分:4)
在C#中,不允许赋值,因为(正如您猜测的那样)表达式P < Q
的类型为bool
。这个C#代码大致相同:
int X;
int P = 10;
int Q = 5;
X = (P < Q) ? 1 : 0;
答案 1 :(得分:3)
如果你想要一个布尔结果:
bool X = P < Q;
...如果你想要一个整数:
int X = P < Q ? 1 : 0;
答案 2 :(得分:2)
在c ++中bool到整数转换是:true是1,false是0.在c#中,这个对话不存在。
int X;
int P = 10;
int Q = 5;
X = (P < Q)?(1):(0);
答案 3 :(得分:1)
如前所述,此转化并非隐式或明确存在,但您可以使用Convert
类
int X;
int P = 10;
int Q = 5;
X = Convert.ToInt32(P < Q);
但最好使用bool
或X = P < Q? 1:0
。
答案 4 :(得分:0)
X
的值为1(0为假,1(或任何非零int)为真)。