vb中定义一个限差类TolError,附带事件OverError,限差值设计为属性,由用户输入若干个高差(可正可负),计算其总的高差h,超过限差值则触发事件OverError。
时间: 2024-09-24 22:07:03 浏览: 36
在VB (Visual Basic) 中,你可以创建一个名为 "TolError" 的自定义类,用于处理限差和高差。这个类会包含两个核心部分:一个属性 `Limit` 代表限差值,以及一个事件 `OverError` 会在高差超出限差时触发。
首先,定义一个名为 `TolError` 的类,如下所示:
```vb
Public Class TolError
' 定义限差值属性
Public Property Limit As Double
' 初始化时设置默认限差值,例如0
Public Sub New(limit As Double)
If limit <= 0 Then
Throw New ArgumentException("Limit must be a positive value.")
End If
Limit = limit
End Sub
' 计算总高差并检查是否超出限差值的成员函数
Private Function CalculateTotalHeight(heights() As Double) As Double
Dim totalHeight As Double = 0
For Each height In heights
totalHeight += height
If totalHeight > Limit Then
RaiseEvent OverError(totalHeight - Limit)
End If
Next
Return totalHeight
End Function
' 事件声明
Public Event OverError(lostValue As Double)
' 用户可以调用此方法传入高差数组
Public Sub CheckHeights(ByVal heights() As Double)
Dim result = CalculateTotalHeight(heights)
' 在这里添加其他操作或返回结果
End Sub
End Class
```
然后,用户可以实例化这个类,并通过 `CheckHeights` 方法输入高差数组:
```vb
Dim tolErr As New TolError(10) ' 设置限差值为10
AddHandler tolErr.OverError, AddressOf HandleOverError
Sub HandleOverError(lostValue As Double)
' 这里处理OverError事件,比如打印警告信息
Console.WriteLine($"High difference exceeded the limit by {lostValue} meters.")
End Sub
Dim inputHeights() As Double = {-5, 7, 3, -8}
tolErr.CheckHeights(inputHeights)
```
阅读全文