VB.Net: 从共享子调用子
VB.Net: call sub from shared sub
我在网页上有一些 Ajax 将一些数据提供给服务器端 VB.Net 方法。一旦该数据在服务器端方法中,我需要调用另一个服务器端方法来使用我刚刚收集的数据。这是一个真正简化的例子:
' This method gets the input from the Ajax code on the web page.
<System.Web.Services.WebMethod> _
Public Shared Sub GetAwesome(VBInputText As String)
Dim strTest As String = VBInputText
' Now that we have collected input from the user,
' we need to run a method that does a ton of other stuff.
DisplayAwesome(VBInputText)
End Sub
Protected Sub DisplayAwesome(AwesomeIn As String)
' The real app does a lot more than this. For this example, it
' just sets the text of a literal.
litAwesomeResult.Text = AwesomeIn
End Sub
当然,在上面的例子中 DisplayAwesome(VBInputText)
给了我 'Cannot refer to an instance member...' 错误。那么,现在可以从 Public Shared Sub GetAwesome
调用 Protected Sub DisplayAwesome
了吗?我希望继续使用这种解决方案,因为它可以很好地与应用程序配合使用,因为它已经由另一位同事编写。
不幸的是你不能这样做,因为页面方法 DisplayAwesome
被定义为 Protected
并且你需要 class 的实例来访问 Protected
方法。但是另一个实例中的更改不会反映在当前 UI 中。您可以做的另一件事是将 DisplayAwesome
设为共享,但这次您无法访问共享函数内的 UI 元素。
在这种情况下你可以做的是,return 数据到被调用的方法(在前端)并在那里处理 litAwesomeResult.Text
调用表单名称为 Class 的子程序,如下所示:
FormName.DisplayAwesome(VBInputText)
在VB.Net中,您可以从默认实例Class的共享方法中调用未共享的方法,因为默认实例是[=23]的对象Form类型=] 应用程序框架在将表单添加到项目时创建和管理它。
有关详细信息,请参阅:
我在网页上有一些 Ajax 将一些数据提供给服务器端 VB.Net 方法。一旦该数据在服务器端方法中,我需要调用另一个服务器端方法来使用我刚刚收集的数据。这是一个真正简化的例子:
' This method gets the input from the Ajax code on the web page.
<System.Web.Services.WebMethod> _
Public Shared Sub GetAwesome(VBInputText As String)
Dim strTest As String = VBInputText
' Now that we have collected input from the user,
' we need to run a method that does a ton of other stuff.
DisplayAwesome(VBInputText)
End Sub
Protected Sub DisplayAwesome(AwesomeIn As String)
' The real app does a lot more than this. For this example, it
' just sets the text of a literal.
litAwesomeResult.Text = AwesomeIn
End Sub
当然,在上面的例子中 DisplayAwesome(VBInputText)
给了我 'Cannot refer to an instance member...' 错误。那么,现在可以从 Public Shared Sub GetAwesome
调用 Protected Sub DisplayAwesome
了吗?我希望继续使用这种解决方案,因为它可以很好地与应用程序配合使用,因为它已经由另一位同事编写。
不幸的是你不能这样做,因为页面方法 DisplayAwesome
被定义为 Protected
并且你需要 class 的实例来访问 Protected
方法。但是另一个实例中的更改不会反映在当前 UI 中。您可以做的另一件事是将 DisplayAwesome
设为共享,但这次您无法访问共享函数内的 UI 元素。
在这种情况下你可以做的是,return 数据到被调用的方法(在前端)并在那里处理 litAwesomeResult.Text
调用表单名称为 Class 的子程序,如下所示:
FormName.DisplayAwesome(VBInputText)
在VB.Net中,您可以从默认实例Class的共享方法中调用未共享的方法,因为默认实例是[=23]的对象Form类型=] 应用程序框架在将表单添加到项目时创建和管理它。
有关详细信息,请参阅: