类概念(访问属性然后访问方法的类)

时间:2016-09-11 05:20:54

标签: vb.net

我有一个名为Car的课程:

Public Class Car
    Public theColor As Color

    Public speed As Double
    Public Function run()
        Return speed
    End Function
End Class

在另一个类中,我创建了一个Car Class实例:

Public Class SUV
    Dim newCar As New Car

    Private Sub setColor()
        'set theColor property
        newCar.theColor = Color.Red

        Dim dgv As New DataGridView
        dgv.Rows.Add()

    End Sub

    Private Sub testDrive()
        'call run() function
        newCar.run()
    End Sub
End Class

从上面的代码中, 如果我想设置类的属性,我只需编写一个实例和属性:

newCar.theColor = Color.Red

此外,如果我想调用类的方法,我只需编写一个实例,然后调用函数或子函数:

newCar.run()

但我不明白一行代码怎么会这样,例如:

Dim dgv As New DataGridView

dgv.Rows.Add()

上面的代码显示实例dgv调用属性Rows而不是调用方法Add()

回到我的班级(汽车和SUV) 如果我想调用这样的方法,如何在我的类中编写代码?

newCar.theColor.resetColor()

另一个代码:

newCar.theColor.setColor() = Color.Red

如果问题的标题与我提出的问题不符,我很抱歉。

由于

1 个答案:

答案 0 :(得分:0)

此代码:

Dim dgv As New DataGridView

dgv.Rows.Add()

只是一个更简洁的等价物:

Dim dgv As New DataGridView

Dim rows As DataGridViewRowCollection = dgv.Rows

rows.Add()

所以,这段代码:

newCar.theColor.resetColor()

等同于:

Dim theColor As Color = newCar.theColor

theColor.resetColor()

现在,鉴于Color类型没有名为resetColor的方法,该代码如何有意义?你要求的是不可能的,因为它没有意义。重置颜色是您在Car对象上执行的操作,而不是Car对象的颜色。如何对汽车做一些颜色的责任?