VB.NET中是否有更优雅的方式判断数值是否在两个值之间?
VB.NET 判断数值是否在两值之间的优雅写法
首先明确:VB.NET没有内置的Between函数,但可以通过以下几种更简洁优雅的方式实现需求:
1. 简化短路判断
直接用AndAlso(短路逻辑运算符,比And更高效)写连续比较,代码简洁直观:
Dim myNumber As Integer = 15 If myNumber >= 10 AndAlso myNumber <= 20 Then ' 数值在10到20之间时执行的逻辑 End If
2. 自定义扩展方法(复用性最高)
自己写一个通用的扩展方法,让所有可比较的数值类型都能直接调用Between方法,一次定义多处使用:
Imports System.Runtime.CompilerServices Module NumericExtensions <Extension()> Public Function Between(Of T As IComparable(Of T))(value As T, lowerBound As T, upperBound As T) As Boolean ' 比较值是否大于等于下限且小于等于上限 Return value.CompareTo(lowerBound) >= 0 AndAlso value.CompareTo(upperBound) <= 0 End Function End Module
调用方式非常简洁:
Dim weight As Double = 65.5 If weight.Between(50, 80) Then ' 体重在50到80之间时的逻辑 End If
3. 使用Select Case(适合多范围判断场景)
如果需要同时判断多个数值范围,Select Case的写法会更清晰:
Dim score As Integer = 75 Select Case score Case 0 To 59 Console.WriteLine("不及格") Case 60 To 79 Console.WriteLine("良好") Case 80 To 100 Console.WriteLine("优秀") End Select
内容的提问来源于stack exchange,提问作者user4951
相关产品推荐
相关产品推荐

