Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何跨多个类使用readonly属性_.net_Vb.net - Fatal编程技术网

.net 如何跨多个类使用readonly属性

.net 如何跨多个类使用readonly属性,.net,vb.net,.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 我可以直接将这个name变量值带入class2吗?需要建议。通过Class1实例 Public Cla

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

Public Class Class1
ReadOnly Property name() As String
    Get

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

    End Get
End Property

我可以直接将这个name变量值带入class2吗?需要建议。

通过Class1实例

    Public Class Class2

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

      End Sub

   End Class

是一些可以在课堂上阅读的内容。

通过Class1的实例

    Public Class Class2

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

      End Sub

   End Class

是可以在类上阅读的内容。

您的只读属性仍然是实例成员,如果不实例化Class1并查看属性定义,则无法共享该属性,它可以
共享。您可以使您的属性
共享
,并在类2中使用它

Public Class Class1
Shared Property name() As String
    Get

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

    End Get
End Property
在第2课,你可以打电话

Dim class1Name = Class1.name

您的Readonly属性仍然是实例成员,如果不实例化Class1并查看属性定义,则无法共享该属性,它可以是
共享的
。您可以使您的属性
共享
,并在类2中使用它

Public Class Class1
Shared Property name() As String
    Get

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

    End Get
End Property
在第2课,你可以打电话

Dim class1Name = Class1.name

您可以在引用类型为
Class1
的对象的任何地方访问此属性。因此,如果您的
Class2
对象有一个引用,它们就可以使用它

例如:

Class Class2
    Property cls1 As New Class1

    Function getClass1Name() As String
        Return cls1.Name
    End Function
End Class
另一种选择是使属性共享,因为它是一个独立于
Class1
的任何实例的值

然后,您可以通过类名访问它,而无需
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

您可以在引用类型为
Class1
的对象的任何地方访问此属性。因此,如果您的
Class2
对象有一个引用,它们就可以使用它

例如:

Class Class2
    Property cls1 As New Class1

    Function getClass1Name() As String
        Return cls1.Name
    End Function
End Class
另一种选择是使属性共享,因为它是一个独立于
Class1
的任何实例的值

然后,您可以通过类名访问它,而无需
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

倒下!。。。他在问“我怎样才能在class2中使用这个name属性?我认为你的属性在重新访问class2时不起作用。你需要
newclass1
Down voter!”他在问“我怎样才能在class2中使用这个name属性?我认为你的属性在重新访问class2时不起作用。”。你需要
new Class1
你必须承认Bala R在你之前就以这种方式发布了关于共享财产的信息,你编辑了它,并补充说,你应该提到他和+1他。@john:我会的,但首先,我没有看到他更快,其次,他现在似乎删除了他的答案。你必须承认,巴拉R在你之前就以这种方式发布了关于共享财产的信息,你编辑了它,并补充说,你应该提到他和+1他。@JonH:我会的,但首先,我没有看到他更快,其次,他现在似乎删除了他的答案。+1不确定你为什么删除了你的原始帖子,你更快地找到了它,而且它是正确的。@John似乎对共享成员不感兴趣,但在看到下面的讨论后,我想我应该把它放在那里作为参考。+1不确定你为什么删除了你的原始帖子,你更快地把它放进去了,而且它是正确的。@John似乎不想让OP有一个共享的成员,但在看到下面的讨论后,我想我应该把它放在那里作为参考。