繁体   English   中英

与使用带有getter和setter的Private字段相比,VB.NET中的Property关键字有什么优势?

[英]What are the advantages of the Property keyword in VB.NET over using a Private field with getters and setters?

在VB.NET中,使用Property关键字而不是:

Private MyProperty as String
Public Sub setP(ByVal s as String)
    MyProperty = s
End Function
Public Function getP() as String
    return MyProperty
End Function

来自Java我倾向于使用这种风格而不是Property...End Property - 有什么理由不这样做吗?

您正在完成编译器所做的工作。 Property关键字的优点:

  • 你不能意外混淆getter和setter属性类型,这是VB中的一个真正问题
  • 不需要笨拙的getset前缀,编译器会找出你想要的那个
  • 数据绑定需要属性
  • 您可以利用auto属性语法,无需声明私有字段,只需要一行代码。

VS2010中使用auto属性语法的相同声明:

Public Property P As String

编译器自动生成getter和setter方法以及私有支持字段。 必要时,您可以重构访问器。

您将从使用getter和setter获得的属性中获得一些额外的好处。

像反射一样可以轻松找到所有属性,因为有方法可以实现。

例如,ORM很容易找到你的属性,但是他们很难找到getter setter,因为惯例是使用这些属性。

所以在功能上它们可能是相同的,但惯例是使用属性。

功能上没有区别,但对我来说,属性的使用是一个更清洁的实现。 这里

达网络4还给出AutoImplement proeprties到VB.net 这里 wher醚:私人背衬变量自动导致更清洁的代码和更少的锅炉板代码编写编译器创建的。

使用Properties使visual studio编辑器能够在属性网格中显示/编辑它。 如果要创建其他人将使用的控件或DLL,则可以使用它们来更改属性网格中的设计时属性。

如果将控件添加到窗体,然后将网格的SelectedObject属性设置为类/控件的实例,则属性网格控件也可以选择它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM