让一个变量在不同方法中具有多个值

时间:2018-01-16 19:43:26

标签: vb.net

尝试为我的类中的所有方法创建一个通用占位符,而不必为每个类声明多个varible,否则声明一个类的多个实例并使用它的方法可能非常昂贵

dim beginIndex, endIndex as integer

public sub GetLastFiveLetters(str as string)

    ' assume string is 10 characters long
    beginIndex = 5
    endIndex = 10 
    ResetVariable() 'I want beginIndex  and endIndex to be 5 and 10 after I call this method
    return = str.substring(5, 10)

end sub

public sub GetFirstFiveLetters(str as string)

    'assume string is 10 characters long
    beginIndex = 0
    endIndex = 5 
    ResetVariable() 'I want beginIndex  and endIndex to be 0 and 5 after I call this method

    return = str.substring(0, 5)

end sub

public sub ResetVariables()

    beginIndex = 0
    endIndex = 0

end sub

重置变量方法只是出于示例目的,我想要做的是能够在多个方法中使用具有多个值的变量... 因此,当我调用reset变量时,即使我在所有方法中技术上重置变量,我希望变量保留其方法特定值...所以在第一种方法中,即使我调用了reset方法,我仍然想要beginIndex 5和endIndex仍为10,它只在resetvariable方法中,其中beginIndex为0,endIndex为0

1 个答案:

答案 0 :(得分:1)

关于在方法中存储变量:

  

...声明一个类的多个实例并使用它的方法可能非常昂贵

错误的。方法中声明的变量,即局部变量,仅在执行方法时存在。另一方面,在每个类实例或对象的整个生命周期中都存在在类级别声明的变量,即 fields

您必须区分变量声明和变量在运行时使用的内存。变量声明本身不会编译成代码。只有变量访问(即设置或读取变量)。在运行时,局部变量在调用方法时开始存在,并在方法返回后停止存在。

但是,只要对象存在,类字段就存在,无论是否调用方法。