[英]VB.NET: Use Class Name as Expression
我不确定这是否可行,但我想将 class 名称引用关联到共享成员方法/属性/变量。 考虑:
Public Class UserParameters
Public Shared Reference As Object
Public Shared Function GetReference() As Object
Return Reference
End Function
End Class
在程序的另一部分,我想简单地调用 UserParameters 并让它返回 Reference 通过别名 GetReference 或直接变量。
我正在尝试模拟应用程序、请求或 Session 变量:Session(0) = Session.Item(0)
任何建议将不胜感激。
You can't return an instance member from a static method directly (the static method can't access instance members because it isn't instantiated with the rest of the class, only one copy of a static method exists).
如果您需要设置 class 以使您可以从 static 方法返回实例,则需要执行类似于以下的操作:
Public Class SampleClass
Private Sub New()
'Do something here
End Sub
Public Shared Function GetSample() As SampleClass
Dim SampleClass As SampleClass
SampleClass = New SampleClass
SampleClass.Sample = "Test"
Return SampleClass
End Function
Private _SampleString As String
Public Property Sample As String
Get
Return _SampleString
End Get
Private Set(ByVal value As String)
_SampleString = value
End Set
End Property
End Class
Public Class SampleClass2
Public Sub New()
'Here you can access the sample class in the manner you expect
Dim Sample As SampleClass = SampleClass.GetSample
'This would output "Test"
Debug.Fail(Sample.Sample)
End Sub
End Class
此方法在 CLR 中的各个地方使用。 例如System.Net.WebRequest class 。 在使用中以这种方式实例化的地方:
' Create a request for the URL.
Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/default.html")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.