如何在多个类中使用readonly属性

时间:2011-06-07 15:13:38

标签: .net vb.net

我在class1中创建了一个只读属性(名称)。如何在class2中使用此name属性?

Public Class Class1
ReadOnly Property name() As String
    Get

        Return System.IO.path.GetFileName("C:\Demo\Sample1")

    End Get
End Property

我可以直接将此名称变量值带入class2吗?需要建议。

3 个答案:

答案 0 :(得分:3)

您可以在任何引用类型为Class1的对象的位置访问此属性。因此,如果您的Class2个对象有引用,则可以使用它。

例如:

Class Class2
    Property cls1 As New Class1

    Function getClass1Name() As String
        Return cls1.Name
    End Function
End Class

另一种选择是使属性共享,因为它是一个独立于任何Class1实例的值。

然后您可以通过class-name:

在没有Class1实例的情况下访问它
Class Class1
    Public Shared ReadOnly Property Name As String
        Get
            Return System.IO.Path.GetFileName("C:\Demo\Sample1")
        End Get
    End Property
End Class

Class Class2
    Function getClass1Name() As String
        Return Class1.Name
    End Function
End Class

答案 1 :(得分:1)

您的Readonly属性仍然是实例成员,如果没有实例化Class1并查看属性定义,则无法共享它,它可以是Shared。您可以设置属性Shared并在class2

中使用它
Public Class Class1
Shared Property name() As String
    Get

        Return System.IO.path.GetFileName("C:\Demo\Sample1")

    End Get
End Property

,在class2中,你可以调用

Dim class1Name = Class1.name

答案 2 :(得分:0)

通过Class1的实例

    Public Class Class2

      Sub New()
            Dim o As New Class1
            Dim s As String  = o.Name

      End Sub

   End Class

Here可以在课堂上阅读。