【问题标题】:How to implement class constructor in Visual Basic?如何在 Visual Basic 中实现类构造函数?
【发布时间】:2010-07-19 07:21:55
【问题描述】:

我只是想知道如何用这种语言实现类构造函数。

【问题讨论】:

  • 重要的是要记住,您只能在公共类的实例中调用方法。如果方法是私有的,那么只有同一个类内部的方法可以调用它。

标签: vb.net


【解决方案1】:

不确定“类构造函数”是什么意思,但我假设您的意思是以下其中之一。

实例构造函数:

Public Sub New()

End Sub

共享构造函数:

Shared Sub New()

End Sub

【讨论】:

  • 类构造函数是实例构造函数的VB 6术语。唉,它也是你所谓的共享构造函数的 OOP 术语。
  • @Jonathan:谢谢,我知道这是一个模棱两可的术语,但不确定它的含义。顺便说一句,你的回答有点错误,因为 Shared 构造函数不能是 Public
  • 呃,这就是我打字太快的结果。
  • 顺便说一句,我刚刚看到一份备忘单将public Foo() 列为C# 中的“类构造函数”。在这一点上,我认为这个词本质上是无用的。
  • 如果我说“对象构造函数”或“静态构造函数”,你就会明白我的意思。如果我说“类构造函数”,你必须问。这对我来说毫无用处。
【解决方案2】:

假设您的班级名为 MyStudent。以下是定义类构造函数的方式:

Public Class MyStudent
    Public StudentId As Integer

    'Here's the class constructor:
    Public Sub New(newStudentId As Integer)
        StudentId = newStudentId
    End Sub
End Class

你是这样称呼它的:

Dim student As New MyStudent(studentId)

当然,你的类构造函数可以包含任意多或少的参数——甚至没有,在这种情况下你可以将括号留空。您还可以为同一个类有多个构造函数,它们都具有不同的参数组合。这些被称为类构造函数的不同“签名”。

【讨论】:

    【解决方案3】:

    如果您指的是 VB 6,那就是 Private Sub Class_Initialize()

    http://msdn.microsoft.com/en-us/library/55yzhfb2(VS.80).aspx

    如果你指的是 VB.NET,它是 Public Sub New()Shared Sub New()

    【讨论】:

      【解决方案4】:

      具有字段的类:

      Public Class MyStudent
         Public StudentId As Integer
      

      构造函数:

          Public Sub New(newStudentId As Integer)
              StudentId = newStudentId
          End Sub
      End Class
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 2021-05-24
        相关资源
        最近更新 更多