Share via


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_ o s_ 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