![]() |
1
177
还有,看看这个 SO post |
![]() |
2
104
你的意思是?
或
|
![]() |
3
70
在生产代码中,我只需编写
从C#9.0开始,我们可以编写
这里有一个聪明的方法,通过使用一些数学知识将比较的次数从两个减少到一个。如果数字超出范围,则两个因子中的一个变为负;如果数字等于某个界限,则为零: 如果边界包含:
或
或
|
![]() |
4
65
这会让你做一些像。。。
尽管如此,当支票本身只有一行时,这样做似乎是一件愚蠢的事情。 |
![]() |
5
50
正如其他人所说,使用一个简单的if。 你应该考虑点餐。
|
![]() |
6
24
我提议:
示例:
当然还有变量:
让代码易于阅读是很重要的,因为开发人员不会浪费“大脑周期”去理解它。在长时间的编码过程中,浪费的大脑周期会使开发人员更早地感到疲倦,并容易出现bug。 |
![]() |
7
22
通过一些扩展方法的滥用,我们可以得到以下“优雅”的解决方案:
|
![]() |
8
7
比如:
|
![]() |
9
6
|
![]() |
10
6
使用
我唯一要说的是,如果您检查输入的目的是抛出一个异常,那么您应该考虑使用代码契约:
|
![]() |
11
3
编辑:提供新答案。 我刚开始使用C#写这个问题的第一个答案时,事后我意识到我的“解决方案”是幼稚和低效的。 我最初的回答是: 我会选择更简单的版本:
由于我还没有看到任何其他更有效的解决方案(至少根据我的测试),我将再尝试一次。 新的更好的方法
这可以用于正范围和负范围,默认范围为
1..100(含)及用途
增加好的措施的例子例1:
退货:
例2: 使用1到150之间的随机整数列表
退货:
执行时间:0.016秒 |
![]() |
12
2
如果您想编写比简单If更多的代码,也许您可以: 创建一个名为IsBetween的扩展方法
附录: 值得注意的是,在实践中,您很少“只检查等式”(或<>)在代码库中(纯粹作为一个例子,任何游戏程序员都会在每个项目中使用类似以下的类别作为基本问题。注意,在这个例子中,它(碰巧)使用了一个内置于该环境中的函数(Mathf.approximaty);在实践中,你通常必须仔细地发展你自己的概念,比较对于实数的计算机表示意味着什么,对于你正在设计的情况类型(如果你在做一些事情,比如控制器,PID控制器或者类似的事情,那么整个问题就变得非常重要,非常困难,它就变成了项目的本质。)这里的OP问题绝不是一个琐碎或不重要的问题。
|
![]() |
13
2
你可以这样使用它:
|
![]() |
14
1
|
![]() |
15
1
在C语言中,如果时间效率非常重要,并且整数溢出将被包装,则可以这样做
不过,在使用这样的实现之前,先对目标机器进行基准测试。在某些处理器上,两部分表达式在所有情况下都可能更快,因为两个比较可以独立完成,而在减法和比较法中,减法必须在执行比较之前完成。 |
![]() |
16
1
像这样的怎么样?
扩展方法如下(测试):
|
![]() |
17
1
我会做一个范围对象,像这样:
然后你用这种方式:
这样您就可以将其重新用于其他类型。 |
![]() |
18
1
当检查一个“数字”是否在某个范围内时,你必须清楚你的意思,两个数字相等意味着什么?一般来说,你应该把所有的浮点数都包装在所谓的“epsilon ball”中,这是通过选取一些小的值来完成的,如果两个值如此接近,它们就是同一件事。
现在,这可能远远超出了您的要求,但它使您无法一直处理舍入问题,并试图记住某个值是否已舍入以及已舍入到什么位置。如果你需要的话,你可以很容易地扩展到任何epsilon,并允许你的epsilon改变。 |
![]() |
19
1
|
![]() |
20
1
待检双数=7; var result=numberToBeChecked.IsBetween(100122); var结果=5.IsBetween(100120); var结果=8.0。介于(1.2,9.6)之间; |
![]() |
21
1
下面是一些可以帮助您的扩展方法
|
![]() |
22
1
|
![]() |
23
1
关于优雅,最接近数学符号( a<=x<=b )略微提高可读性:
进一步说明:
|
|
24
0
这只适用于存在?:的较新版本的C
很明显,你可以为了你的目的改变那里的标志。我也会喜欢打字。我只需要一个边界内的浮点返回(或等于) |
|
25
0
我不知道,但我用这个方法:
我可以这样使用它:
|
![]() |
26
0
我刚刚写了这些漂亮的函数。它还有一个优点,就是对有效值没有分支(单个if)。最困难的部分是构造适当的异常消息。
|
![]() |
27
-2
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |