gpt4 book ai didi

原始类型的 C# 重载运算符

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:28 25 4
gpt4 key购买 nike

是否可以为 int float ?

例子:

float a, b; int c;
//instead of this:
return Convert.ToBoolean(a) || Convert.ToBoolean(b) && !Convert.ToBoolean(c);
//do this:
return a || b && !c;

最佳答案

在使用整数时,您可以使用按位运算符来实现这一点。

您将使用 & 而不是 &&, |而不是 ||和 ~ 而不是 !。

看起来像这样:

    int a, b, c;
//instead of this:
//return Convert.ToBoolean(a) || Convert.ToBoolean(b) && !Convert.ToBoolean(c);
//do this:
return (a | b & ~c) != 0;

但是如果是 float ,则不能使用这些运算符。

编辑:再考虑一下,我相信你不能这样做。所有非零值都被评估为真,除了零被评估为假。请记住这一点,使用按位和 (&) 对两个非零值进行运算可能会求值为零。例如:a = 1, b = 2 -> a & b = 0。此外,如果应用于 -1,按位取反 (~) 只会计算为零。当转换为 bool 值时,~1 的计算结果为非零。

关于原始类型的 C# 重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56919714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com