尝试为我的类中的所有方法创建一个通用占位符,而不必为每个类声明多个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
答案 0 :(得分:1)
关于在方法中存储变量:
...声明一个类的多个实例并使用它的方法可能非常昂贵
错误的。方法中声明的变量,即局部变量,仅在执行方法时存在。另一方面,在每个类实例或对象的整个生命周期中都存在在类级别声明的变量,即 fields 。
您必须区分变量声明和变量在运行时使用的内存。变量声明本身不会编译成代码。只有变量访问(即设置或读取变量)。在运行时,局部变量在调用方法时开始存在,并在方法返回后停止存在。
但是,只要对象存在,类字段就存在,无论是否调用方法。