vb.net 如何实现每次使用变量时变量结果都会重载?

定义了某变量为组合按键判断,同时有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。
需要如何写才能使每一次调用的结果都是当前的实际状态呢?

https://blog.csdn.net/FlyingLeaf886/article/details/624565