定义了某变量为组合按键判断,同时有N个过程或者函数进行了该变量的调用,如何确保每一次调用该变量时结果都是重载过后的结果,而不是一成不变的呢?
Public key As New Computer
''' <summary>
''' 是否按下Ctrl键
''' </summary>
Public ctrl As Boolean = "ctrl".Key_OpenStart
''' <summary>
''' 是否按下Alt键
''' </summary>
Public alt As Boolean = "alt".Key_OpenStart
''' <summary>
''' 是否按下Shift键
''' </summary>
Public shift As Boolean = "shift".Key_OpenStart
''' <summary>
''' 判断当前是否按下了指定按键,如需要判断请调用ctrl、alt、shift三个变量,将直接得到相对应按键是否按下的结果。
''' </summary>
''' <typeparam name="T"></typeparam>
''' <param name="keyname"></param>
''' <returns></returns>
<Extension>
Public Function Key_OpenStart(Of T)(keyname As IEnumerable(Of T)) As Boolean
Dim val As Boolean = Nothing
Select Case $"{keyname}"
Case "ctrl"
val = key.Keyboard.CtrlKeyDown
Exit Select
Case "alt"
val = key.Keyboard.AltKeyDown
Exit Select
Case "shift"
val = key.Keyboard.ShiftKeyDown
Exit Select
End Select
Return val
End Function
上述ctrl、alt、shift为所定义的变量,N个变量调用如:if ctrl then。
目前每次调用都是固定结果,即只有加载时的一次结果:全是False。
需要如何写才能使每一次调用的结果都是当前的实际状态呢?