检查是否在页面中声明了变量?

时间:2011-11-18 16:18:27

标签: asp.net vb.net error-handling

我有一些包含其他页面的网页,我需要检查页面中是否已声明变量(字符串)。

我正在探索try catch,最后,但我总是得到编译器错误,说变量不会退出。

我脑子里的语法是:

if variable(exists) then
do something
else
do nothing
end if

从我发现的是,如果变量没有在任何地方定义,这甚至都不会编译。我有点知道,我只是希望找到一些工作。 :/

3 个答案:

答案 0 :(得分:1)

我所知道的唯一方法是使用反射...... 这不适用于subs / functions中定义的变量......

Friend Function VariableExists(ByVal variableName As String) As Boolean
  For Each tField As FieldInfo In Me.GetType.GetFields
    If tField.Name.ToLower() = variableName.ToLower() Then
      Return True
    End If
  Next
  Return False
End Function

这里的Cose未经测试,可能包含轻微错误。可以把它想象成伪代码。

答案 1 :(得分:1)

如何添加一个可以在需要以特定方式处理的页面中使用的简单接口,而不是声明变量,那么您可以测试该页面是否实现了接口?

例如:

Public Interface IMySpecialInterface
End Interface

在您想要特殊行为的页面中:

Public Page MySpecialPage
  Implements IMySpecialInterface
End Page

在处理页面的代码中:

If TypeOf Me.Page Is IMySpecialInterface Then

答案 2 :(得分:0)

使用界面怎么样:

Public Interface ISpecialProp
    Property SpecialProp() As String
End Interface

然后你可以测试,如果一个类使用这个代码实现了接口:

Dim spec = TryCast(obj, ISpecialProp)
If spec IsNot Nothing Then
    Console.WriteLine(spec.SpecialProp)
End If