2011-09-22 10 views

Respuesta

7

El primero es un verdadero inmueble. El segundo es solo un campo.

En general, los campos deben mantenerse private y son los que almacenan los datos reales. Las propiedades no almacenan datos, pero apuntan a campos. En el caso de la propiedad automática anterior, generará automáticamente un campo oculto como _city detrás de las escenas para contener los datos.

Espero que esto ayude!

1

La primera es propiedad de CLR, mientras que la segunda es solo un campo público (no es una propiedad).

En WPF y Silverlight, el enlace no funciona con campos públicos, solo funciona con propiedades públicas. Esa es una gran diferencia en mi opinión:

//<!--Assume Field is a public field, and Property is a public property--> 
<TextBlock Text="{Binding Field}"/> 
<TextBlock Text="{Binding Property}"/> 

Primero, no funcionaría, pero el segundo funcionaría.

0

como mellamokb dijo. el primer tipo es la propiedad, el compilador generará automáticamente la función de acceso y ámbito privado como:

private String _city; 
public String City(){ return _city ;} 
..... 

propiedades de uso, se puede controlar el acceso de _city, por ejemplo"

public String City(){ 
doXxxFunction(); 
return _city ; 
} 

es así, siempre debe usar la propiedad y asegurarse de que todos los campos sean privados.

Cuestiones relacionadas