2011-09-22 2 views

Répondre

7

La première est une propriété réelle. Le second est juste un champ.

De manière générale, les champs doivent être conservés private et sont ce qui stockent les données réelles. Les propriétés ne stockent pas réellement de données, mais elles pointent vers des champs. Dans le cas de la propriété auto ci-dessus, il génèrera automatiquement un champ caché comme _city dans les coulisses pour contenir les données.

Espérons que cela aide!

1

La première est la propriété CLR, tandis que la seconde est un champ public (pas une propriété).

Dans WPF et Silverlight, la liaison ne fonctionne pas avec les champs publics, elle fonctionne uniquement avec les propriétés publiques. C'est une différence majeure à mon avis:

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

Le premier ne fonctionnerait pas mais le second fonctionnerait.

0

comme dit mellamokb. le premier type est la propriété, le compilateur fonction d'accès générer automatiquement et sur le terrain privé comme:

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

Propriétés d'utilisation, vous pouvez contrôler l'accès des _City, par exemple »

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

, vous devrait toujours utiliser la propriété, et assurez-vous que tous les champs sont privés

Questions connexes