Aparte de un punto de vista arquitectónico, me pregunto si hay alguna diferencia en .net entre una propiedad de solo lectura y una función. ¿Las propiedades son solo envoltorios conceptuales de las funciones?¿Cuál es la diferencia entre la propiedad de solo lectura y la función en .net?
Private m_Property As String
Public ReadOnly Property PropertyGet() As String
Get
Return m_Property
End Get
End Property
Public Function FunctionGet() As String
Return m_Property
End Function
Desmontaje IL muestra que no hay diferencia aparte del nombre, pero hay diferencias en otro nivel? ¿Es el getter solo una función en la mano corta (!?)?
Edit
: Wow, me siento mucho por no ser capaz de marcar varias respuestas.
La primera respuesta que señalaba el uso de propiedades para serializar era el camino hacia la iluminación, ya que había dejado completamente este aspecto. Antes de eso, la explicación de propiedad vs función como "es" vs "hace" se sintió arbitraria. Ahora, lo grok más.
Creo que el consenso sobre la propiedad que no consume mucho tiempo se deriva del concepto "es"/serializable . Si mi propiedad habla con una base de datos para almacenar el valor "es", se rompe de maneras horribles.
+1. Esto solía molestarme en mis primeros días de VB.NET. Afortunadamente lo he superado ahora. –