相关疑难解决方法(0)

接口行为在VB.Net中是不同的

接口在Vb.Net中的行为不同.下面是一个示例代码片段,其中IStudentinterface具有SayHello由类实现的方法Student.默认情况下,Access修饰符SayHello应为Public.通过将Access修饰符更改Private为不破坏现有代码,我仍然可以使用下面的代码访问此私有方法

Dim stdnt As IStudent = New Student
stdnt.SayHello()
Run Code Online (Sandbox Code Playgroud)

Access修饰符确定类中成员的范围,更多的私有成员只能从存在的类中访问.但是这里的Access Modifier理论,Encapsulation被打破了.

  • 为什么.net以这种方式设计?
  • Access修饰符和封装的概念真的被打破了吗?
  • .net框架如何在内部处理这种情况?

提前致谢

Module Module1

   Sub Main()
        Dim stdnt As IStudent = New Student
        stdnt.Name = "vimal"
        stdnt.SayHello()
   End Sub

End Module

Public Interface IStudent

   Property Name As String

   Sub SayHello()

End Interface

Public Class Student
   Implements IStudent

   Private Property Name As String Implements IStudent.Name

   Private Sub SayHello() Implements IStudent.SayHello
       Console.WriteLine("Say Hello!")
   End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

vb.net

6
推荐指数
1
解决办法
943
查看次数

标签 统计

vb.net ×1