Asp.net 检查变量是否在页面中声明?

Asp.net 检查变量是否在页面中声明?,asp.net,vb.net,error-handling,Asp.net,Vb.net,Error Handling,我有一些包含其他页面的网页,我需要检查页面中是否声明了变量(字符串) 我一直在探索try-catch和finally,但我总是收到一个编译器错误,说变量不存在 我脑海中的语法是: if variable(exists) then do something else do nothing end if 从我发现的情况来看,如果变量在任何地方都没有定义,这甚至不会编译。我有点知道,我只是希望能找到一些工作/ 我知道的唯一方法就是使用反射。。。 这不适用于子函数/函数中定义的变量 Friend Fu

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

我一直在探索try-catch和finally,但我总是收到一个编译器错误,说变量不存在

我脑海中的语法是:

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

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

我知道的唯一方法就是使用反射。。。 这不适用于子函数/函数中定义的变量

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未经测试,可能包含小错误。把它想象成伪代码。

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

例如:

Public Interface IMySpecialInterface
End Interface
在需要特殊行为的页面中:

Public Page MySpecialPage
  Implements IMySpecialInterface
End Page
在处理页面的代码中:

If TypeOf Me.Page Is IMySpecialInterface Then

使用界面如何:

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

您是指在VB.net中声明还是在网页中声明为javascript变量?为什么需要这样做?VB在编译时是静态类型的。如果变量不在您使用它的范围内,编译器会告诉您(听起来好像是这样)。到底是什么问题?(您的问题意味着它与前面的问题相关。您是应该编辑该问题以添加上下文,还是这是一个新问题?如果这是新问题而不是原始问题的副本,我们也需要在此处添加上下文。)网站是建立包括为标题等在一个网站的特定部分,我有一个变量定义,这样我就可以通过SQL动态加载页面。在每个页面的标题中,如果变量存在,我希望动态更新某些内容。如果我能掌握这个问题,就足够简单了。@Anthem-不要在asp.net中使用includes。这只是一个全方位的坏主意。使用母版页并生成自定义控件和用户控件。如果这是经典asp而不是asp.net,请用
asp经典
标记重新标记您的问题。。。您声明该变量是一个页面级变量,并通过包含文件定义。。。那么你已经知道变量是否定义了,嗯?除非该文件仅在满足某些条件时才包含…是的,我知道,问题是/是脚本不存在。那么这应该让您的脚本知道。