Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 布尔到整数转换_C# - Fatal编程技术网

C# 布尔到整数转换

C# 布尔到整数转换,c#,C#,有没有一种方法可以在没有条件语句(例如if语句)的情况下将bool转换为整数 不,没有。您可以将此条件隐藏在其他方法调用(如Convert.ToInt)后面,或者在中选择不同的语法(如实际的if),但最终,在某个地方,将出现您的条件。使用Convert.ToInt32(布尔值)尽管nvoigt的答案完全正确,但我可以再举几个例子,只是为了好玩 从来没有!永远不要使用这个代码!它的提供只是为了好玩或解决与(好)朋友的争端!) 首先,方法GetHashCode发挥了神奇的作用(作为实现细节): 如果

有没有一种方法可以在没有条件语句(例如if语句)的情况下将bool转换为整数


不,没有。您可以将此条件隐藏在其他方法调用(如
Convert.ToInt
)后面,或者在
中选择不同的语法(如实际的
if
),但最终,在某个地方,将出现您的条件。

使用
Convert.ToInt32(布尔值)

尽管nvoigt的答案完全正确,但我可以再举几个例子,只是为了好玩

从来没有!永远不要使用这个代码!它的提供只是为了好玩或解决与(好)朋友的争端!)

首先,方法
GetHashCode
发挥了神奇的作用(作为实现细节):

如果你想要更深奥的方法。。陛下不客气


记住!从来没有

我很确定答案是否定的。你是否尝试过通过cast进行显式转换?只是好奇,你不喜欢该语句的什么地方?条件逻辑总是导致函数的圈复杂度。我打算提出一个反例,使用字典/查找,但人们总是可以争论“实际上
if
,但最终”降到几乎任何级别;或者至少远低于C。在前面的评论中,我建议简单地将指向布尔的指针转换为指向int的指针,并取消引用它以获得int值(在
不安全的
方法中)。但是bool和int的大小不同,cf.。据我所知,这样的转换不起作用。请简要解释您的答案。@Ravimallya需要在其中解释什么?我喜欢。您知道Convert.ToInt32(boolValue)是否使用某种位操作或条件逻辑吗?我有点懒于使用.net reflector。请尝试ILSpy:):if(!value)返回0;返回1;
int intValue = boolValue ? 1 : 0;
int intValue = Convert.ToInt32(boolValue));
bool b = true;
int i = b.GetHashCode();
bool b = true;
int i = ~(b.ToString()[0] / 2) & 1;