gpt4 book ai didi

vb.net - 在这个类中使用 Property 有什么好处吗?

转载 作者:行者123 更新时间:2023-12-04 06:25:54 24 4
gpt4 key购买 nike

我有以下类(class):

Class MyClass

Property MyInteger as Integer
Set(ByVal value as Integer)
_MyInteger = value
End Set
Get
Return _MyInteger
End Get
End Property
Private _MyInteger as Integer

End Class

由于我没有在我的属性中使用任何验证等,在这种情况下使用属性是否有任何优势,或者使用起来会更整洁:
Class MyClass

Public MyInteger as Integer

End Class

最佳答案

一般来说,类中的公共(public)成员变量是不受欢迎的,它打破了面向对象编程的封装原则。

这样的规则不是为了它,而是有充分的理由。通过将变量公开,您使代码更难维护,并限制了您以后可以使用它做的事情。

尽管您现在可能不想对值进行验证,但如果您以后需要添加它会发生什么?如果您需要将其设为只读值,类本身可以更改该值,但客户端不能更改,该怎么办?

这会导致最大的问题是您是否正在实现一个库。如果您提供带有公共(public)成员的库的版本 1,然后在库的第二个版本中,必须将其转换为属性,您将必须重新编译使用该库的每个程序集。

正是出于这个原因(除其他外),VB.net 10 添加了自动属性:

Class MyClass
Public Property MyInteger as Integer
End Class

现在,您可以默认为您将创建公共(public)成员变量的事物创建自动属性,然后如果您以后需要升级到完整属性,那么可以在不更改接口(interface)的情况下这样做。

关于vb.net - 在这个类中使用 Property 有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com