繁体   English   中英

VB.NET:使用 Class 名称作为表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM