我在class1中创建了一个只读属性(名称)。我如何在class2中使用这个名称属性?如何在多个类中使用只读属性
Public Class Class1
ReadOnly Property name() As String
Get
Return System.IO.path.GetFileName("C:\Demo\Sample1")
End Get
End Property
我可以直接将这个名称变量值带入class2吗?需要建议。
我在class1中创建了一个只读属性(名称)。我如何在class2中使用这个名称属性?如何在多个类中使用只读属性
Public Class Class1
ReadOnly Property name() As String
Get
Return System.IO.path.GetFileName("C:\Demo\Sample1")
End Get
End Property
我可以直接将这个名称变量值带入class2吗?需要建议。
通过Class1的
Public Class Class2
Sub New()
Dim o As New Class1
Dim s As String = o.Name
End Sub
End Class
Here的一个实例是值得的班念。
您的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
+1不确定为什么你删除了你的原始文章,并且它的速度更快,并且正确。 – JonH 2011-06-07 15:38:26
@JonH似乎并不像OP有兴趣拥有共享成员,但在看到下面的讨论后,我想我会把它留在那里作为参考。 – 2011-06-07 15:40:16
,你必须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
你必须承认B ala R在你做之前发布了这个方式,关于共享财产,并且你对它进行了编辑并添加了它,你应该提到他和他+1。 – JonH 2011-06-07 15:23:54
@JonH:我会的,但是首先我没有看到他的速度更快,现在看来他已经删除了他的答案。 – 2011-06-07 15:25:48
向下选民......他问:“我怎么能在Class2中使用这个名称属性?? – 2011-06-07 15:19:37
我不当你重新进入class2时,你会觉得你的工作很好,你需要'新的Class1' – JonH 2011-06-07 15:20:32
废话!类型... tks – 2011-06-07 15:21:35