Hay situaciones en las que declarar variables miembro en la parte superior de mi clase y declarará también tienen una propiedad de acceso o establecer que la variable miembro, pero me pregunto si la propiedad es necesaria si la variable sólo se va a acceder y configurar desde dentro de la clase y en ningún otro lado, entonces, ¿cuál es la ventaja de utilizar una propiedad para acceder y establecer una variable miembro en lugar de solo hacerlo directamente a la variable miembro misma? Aquí está un ejemplo:¿Diferencia entre la variable miembro y la propiedad miembro?
public class Car
{
int speed; //Is this sufficient enough if Car will only set and get it.
public Car(int initialSpeed)
{
speed = initialSpeed;
}
//Is this actually necessary, is it only for setting and getting the member
//variable or does it add some benefit to it, such as caching and if so,
//how does caching work with properties.
public int Speed
{
get{return speed;}
set{speed = value;}
}
//Which is better?
public void MultiplySpeed(int multiply)
{
speed = speed * multiply; //Line 1
this.Speed = this.Speed * multiply; //Line 2
//Change speed value many times
speed = speed + speed + speed;
speed = speed * speed;
speed = speed/3;
speed = speed - 4;
}
}
En lo anterior, si yo no tengo la velocidad propiedad para establecer y obtener la velocidad variable, y decido cambiar la velocidad int a int SPD, voy a tener que cambiar de velocidad a spd en todas partes se utiliza, sin embargo, si uso una propiedad como velocidad para establecer y obtener la velocidad, voy a tener que cambiar la velocidad a la del SPD en el get y set de la propiedad, por lo que en mi método MutilplySpeed, cosas como anteriormente this.Speed = this.Speed + this.Speed + this.Speed no se romperá.
posible duplicado de [¿Cuál es la diferencia entre un campo y una propiedad en C#?] (Http: // stackoverflow.com/questions/295104/what-is-the-difference-between-a-field-and-a-property-in-c) – nawfal