【问题标题】:Should I create individual properties in a class or just a method to set the values?我应该在一个类中创建单个属性还是只创建一个方法来设置值?
【发布时间】:2011-11-29 12:23:31
【问题描述】:

我正在学习 vb.net,但我无法理解以下内容...

我可以创建自定义类的多个属性并获取/设置值,或者我可以创建一个方法来一次设置它们。如果每个属性都允许读取和写入,我应该只创建一个方法来一次分配所有值吗?我假设我在这里遗漏了一个非常重要的部分。示例:

我可以创建 2 个属性:

    Public Class Employee
        Public Property LastName as string
        Get 
            Return strLastName
        End get

        Set(ByVal value as string)
            strLastName= value
        End Set
        End Property

        Public Property FirstName as string
        Get 
            Return strFirstName
        End get

        Set(ByVal value as string)
            strFirstName= value
        End Set
        End Property
    End Class

或者我可以创建一个方法:

    Public Class Employee
        Public Sub AddEmployee(ByVal strLastName, ByVal strFirstName)
            LastName = strLastName
            FirstName = strFirstName
        End Sub
    End Class

对于这样一个菜鸟问题,我深表歉意,但非常感谢任何见解。谢谢!

【问题讨论】:

    标签: vb.net class methods properties


    【解决方案1】:

    如果您只有一个方法,即使您只想更改 single 字段的值,您也将必须使用它。

    此外,在这种方法中,如果您需要验证输入,您将需要编写大量与所有字段无关的验证代码。

    如果值必须一起更新,使用方法一起更新它们,不要提供setter。

    现实情况是,如何做到这一点取决于您在课堂上建模的内容。没有硬性规定说属性优于方法,反之亦然。

    【讨论】:

    • 好吧,这很有道理。我现在可以想到几种情况,我想在属性上使用方法,反之亦然。我认为两者的结合将对我正在构建的这个特定课程有所帮助。我只需要做对我想要完成的事情有意义的事情。你的解释真的很有帮助。谢谢!
    • @kdonah3 - 很高兴我能帮上忙 :)
    • 如果您决定使用该方法,我建议您使用不同的名称,例如 SetEmployee 或 NameEmployee。 AddEmployee(无论如何对我来说)表明您的班级中可能有几名员工,这个函数会添加一个新员工。现在可能看起来没什么大不了,但它会大大提高代码的可读性,您或其他阅读您的代码的人将来会喜欢它。
    【解决方案2】:

    没有理由不支持属性和设置多个属性的方法。

    通常,构造函数用于创建类的实例并设置一些属性。在 VB 中,将类方法命名为“New”将其定义为构造函数。在您的示例中,如果您将 AddEmployeee 方法重命名为 New,您将拥有一个完美的构造函数。然后你的程序可以像这样创建新的实例:

    Dim emp1 as New Employee("Burdell", "George") 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 2014-10-10
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多