Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何声明读取richtextbox最后一行的全局变量_Vb.net_Variables_Global_Declaration_Public - Fatal编程技术网

Vb.net 如何声明读取richtextbox最后一行的全局变量

Vb.net 如何声明读取richtextbox最后一行的全局变量,vb.net,variables,global,declaration,public,Vb.net,Variables,Global,Declaration,Public,我有这个密码 Dim totalLines As Integer = frmTerminal.rtbDisplay.Lines.Length Dim lastLine As String = frmTerminal.rtbDisplay.Lines(totalLines - 1) 这段代码有效地读取了richtextbox的最后一行,它对我的所有函数都非常有用 问题: 因为我的大多数函数都依赖于检测richtextbox的最后一行,所以我想将其声明为全局和公共变量。但每当我将其

我有这个密码

    Dim totalLines As Integer = frmTerminal.rtbDisplay.Lines.Length
    Dim lastLine As String = frmTerminal.rtbDisplay.Lines(totalLines - 1)
这段代码有效地读取了richtextbox的最后一行,它对我的所有函数都非常有用

问题:

因为我的大多数函数都依赖于检测richtextbox的最后一行,所以我想将其声明为全局和公共变量。但每当我将其全球化并公开时,就会导致一个错误,即

xxxxxx.exe中发生类型为“System.TypeInitializationException”的未处理异常


这意味着我想计算尚未创建的richtextbox的行数,因此我的问题是如何以全局和公共的方式有效地获取richtextbox的最后一行?

您可以尝试使用公共属性

Public ReadOnly Property LastLine() As String
    Get
        Dim returnValue As String = String.Empty
        If rtbDisplay.Lines.Count > 0 Then
            returnValue = rtbDisplay.Lines(rtbDisplay.Lines.Count - 1)
        End If
        Return returnValue
    End Get
End Property

您可以尝试使用公共属性

Public ReadOnly Property LastLine() As String
    Get
        Dim returnValue As String = String.Empty
        If rtbDisplay.Lines.Count > 0 Then
            returnValue = rtbDisplay.Lines(rtbDisplay.Lines.Count - 1)
        End If
        Return returnValue
    End Get
End Property

虽然将其声明为公共变量可能没有帮助,但可以在类中将其声明为公共属性

Public ReadOnly Property LastLine() As String
    Get
        Return frmTerminal.rtbDisplay.Lines(frmTerminal.rtbDisplay.Lines.Length - 1)
    End Get
End Property

虽然将其声明为公共变量可能没有帮助,但可以在类中将其声明为公共属性

Public ReadOnly Property LastLine() As String
    Get
        Return frmTerminal.rtbDisplay.Lines(frmTerminal.rtbDisplay.Lines.Length - 1)
    End Get
End Property

你说这对你没有帮助是什么意思,先生?这是一种不好的做法吗?如果只使用公共变量,在使用它之前需要调用一些方法来刷新它的值。这就是公共属性或公共方法的作用(即允许您执行某些代码)。你不能仅仅用一个公共变量来实现这一点。你说它对你没有帮助是什么意思,先生?这是一种不好的做法吗?如果只使用公共变量,在使用它之前需要调用一些方法来刷新它的值。这就是公共属性或公共方法的作用(即允许您执行某些代码)。纯粹使用公共变量是无法实现这一点的。像这样的全局声明是不好的做法。@paul,你能告诉我为什么吗?从技术上讲,这些信息已经可以从控件本身轻松获得,并且在应用程序中有特定的作用域。为什么整个应用程序中的所有其他内容都需要知道这个值?最多,您应该将变量限制在当前表单的范围内,或者按照Mort和Pradeep的方法公开一个属性。这样的全局声明是不好的做法。@paul,你能告诉我为什么吗?从技术上讲,这些信息已经很容易从控件本身获得,并且在你的应用程序中有一个特定的范围。为什么整个应用程序中的所有其他内容都需要知道这个值?最多,您应该将变量限制在当前表单的范围内,或者按照Mort和Pradeep的方法公开属性。