我在理解Shadows与Me. 下面是我写的代码:
Module Module1
Sub main()
Dim c As New Customer()
c.UseMe() 'See item 1
Console.WriteLine("----")
c.DoSomething()
Console.ReadLine()
End Sub
End Module
Public Class Person
Public Sub DoSomething()
Console.WriteLine("Person")
End Sub
Public Sub UseMe()
Me.DoSomething() 'See item 2
'See item 3
End Sub
End Class
Public Class Customer
Inherits Person
Public Shadows Sub DoSomething()
'See item 4
Console.WriteLine("Customer")
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
以下是我期望它的工作方式(但它没有):
c是派生类的对象,但调用类中的UseMe方法PersonMe关键字表现得像一个对象指的是当前实例(在这种情况下是c)Me.DoSomething = …我对在 VB.net 中使用 GET 和 SET 方法的需要感到有点困惑。我想讨论这方面的两种情况:首先,当我们将属性声明为 PUBLIC 时,接下来,当我们将属性声明为 PRIVATE 时。
我发现当我将一个属性定义为 public 时,我可以直接设置和访问该属性的值,而无需使用 GET/SET 方法 --- 非常简单:见下文
Module Program
Sub Main()
Dim t As New test()
t.name = "Roy" 'Label 1
Console.WriteLine("t.name = {0}", t.name)
Console.ReadLine()
End Sub
End Module
Class test
Public Property name() As String
End Class
Run Code Online (Sandbox Code Playgroud)
当我将同一属性声明为私有时,如下所示,我仍然可以通过简单地使用构造函数和公共子例程来设置和访问私有属性的值。见下文:
Module Program
Sub Main()
Dim t As New test()
t.printValue()
Console.ReadLine()
End Sub
End Module
Class test
Private Property Name() As String
Sub New()
Name = "Roy" 'Label 2 …Run Code Online (Sandbox Code Playgroud) vb.net ×2