VB.NET变量传递ByRef到构造函数可用于其他类方法

时间:2017-07-13 22:08:15

标签: vb.net

我正在研究一个解析模板的类。这是我所拥有的缩写版本:

november08

如您所见,它的设计是递归的。首次实例化类时,调用者将模板名称传递给构造函数,然后设置各种内容并调用Public Class Parser Public Vars As New Dictionary(Of String, String) Public Tags As New Dictionary(Of String, String) Private Template As String Public Sub New(ByRef _Template As String, Optional ByVal _Recursing As Boolean = False) Recursing = _Recursing Template = _Template End Sub Public Sub Go() ' Do stuff, extract a portion of the template Dim Page as Parser = New Parser(portion, True) Page.Go() End Sub End Class 。当它递归时出现问题:Go()创建一个新实例,而不是模板名称,传递要处理的模板的一部分,这就是Go()_Template的原因。问题是,ByRef的新实例无法访问它。 VB没有指针,所以有没有办法让构造函数中的其他类可以使用该引用?我在谷歌上搜索了一些文章,但找不到任何能回答我问题的文章。 This article听起来像Go()数据类型会做我想要的,所以我试过

Object

但它没有做我想要的。我还发现this似乎在问同一个问题,并且似乎说将parm更改为 Private Template As Object 可以解决问题,但这没有任何意义。

0 个答案:

没有答案