Instrucciones de uso de campos
En las reglas siguientes se describen las instrucciones de uso de campos:
No utilice campos de instancias que sean public o protected (Public o Protected en Visual Basic). Si evita exponer directamente los campos al programador, se pueden tener versiones de las clases más fácilmente ya que no se puede cambiar un campo en una propiedad y seguir manteniendo la compatibilidad binaria. Considere la inclusión de los descriptores de acceso de las propiedades get y set en los campos, en vez de hacerlos públicos. La presencia de código ejecutable en los descriptores de acceso de las propiedades get y set, permite introducir mejoras más adelante, como crear un objeto a petición, cuando se utiliza la propiedad o en la notificación de cambio de propiedad. En el siguiente ejemplo de código se muestra el uso correcto de campos de instancia privados con los descriptores de acceso de las propiedades get y set.
Public Structure Point Private xValue As Integer Private yValue As Integer Public Sub New(x As Integer, y As Integer) Me.xValue = x Me.yValue = y End Sub Public Property X() As Integer Get Return xValue End Get Set xValue = value End Set End Property Public Property Y() As Integer Get Return yValue End Get Set yValue = value End Set End Property End Structure [C#] public struct Point { private int xValue; private int yValue; public Point(int x, int y) { this.xValue = x; this.yValue = y; } public int X { get { return xValue; } set { xValue = value; } } public int Y { get { return yValue; } set { yValue = value; } } }
Exponga un campo a una clase derivada utilizando una propiedad protected que devuelve el valor del campo. Esto se muestra en el siguiente ejemplo de código:
Public Class Control Inherits Component Private handle As Integer Protected ReadOnly Property Handle() As Integer Get Return handle End Get End Property End Class [C#] public class Control: Component { private int handle; protected int Handle { get { return handle; } } }
Use la palabra clave const (Const en Visual Basic) para declarar campos de constantes que no vayan a cambiar. Los compiladores de lenguajes guardan los valores de los campos const directamente en código de llamada.
Utilice campos estáticos públicos de sólo lectura para instancias de objetos predefinidas. Si ya hay instancias predefinidas de un objeto, declárelas como campos estáticos públicos de sólo lectura del objeto. Utilice el estilo de Mayúsculas y minúsculas Pascal pues son campos públicos. En el siguiente ejemplo de código se muestra el uso correcto de campos estáticos públicos de sólo lectura.
Public Structure Color Public Shared Red As New Color(&HFF) Public Shared Green As New Color(&HFF00) Public Shared Blue As New Color(&HFF0000) Public Shared Black As New Color(&H0) Public Shared White As New Color(&HFFFFFF) Public Sub New(rgb As Integer) ' Insert code here. End Sub Public Sub New(r As Byte, g As Byte, b As Byte) ' Insert code here. End Sub Public ReadOnly Property RedValue() As Byte Get Return Color End Get End Property Public ReadOnly Property GreenValue() As Byte Get Return Color End Get End Property Public ReadOnly Property BlueValue() As Byte Get Return Color End Get End Property End Structure [C#] public struct Color { public static readonly Color Red = new Color(0x0000FF); public static readonly Color Green = new Color(0x00FF00); public static readonly Color Blue = new Color(0xFF0000); public static readonly Color Black = new Color(0x000000); public static readonly Color White = new Color(0xFFFFFF); public Color(int rgb) { // Insert code here.} public Color(byte r, byte g, byte b) { // Insert code here.} public byte RedValue { get { return Color; } } public byte GreenValue { get { return Color; } } public byte BlueValue { get { return Color; } } }
Escriba al completo todas las palabras utilizadas en un nombre de campo. Utilice abreviaturas sólo si los programadores en general las comprenden. No utilice mayúsculas en los nombres de campos. A continuación, se muestra un ejemplo de nombres de campos correctos.
Class SampleClass Private url As String Private destinationUrl As String End Class [C#] class SampleClass { string url; string destinationUrl; }
No utilice la notación húngara en nombres de campos. Los nombres correctos describen la semántica y no el tipo.
No aplique un prefijo a nombres de campos o a nombres de campos estáticos. En concreto, no aplique un prefijo al nombre de un campo para diferenciar los campos estáticos de los campos no estáticos. Por ejemplo, aplicar un prefijo
g_
os_
es incorrecto.
Vea también
Instrucciones de diseño para programadores de bibliotecas de clases | Instrucciones de uso de miembros de clases | Instrucciones de nomenclatura de campos estáticos