2010-11-12 3 views
0

ce qui se passe si vous implémentez une propriété automatiqueQuestion sur les propriétés automatiques

public string Foobar { get; set; } 

et code, puis la variable correspondante

private string foobar = string.Empty; 

Est-ce que l'utilisation de la propriété automatique, cette variable ou le compilateur génère un montant supplémentaire variable?

Répondre

1

Non, la propriété automatique n'utilisera pas votre variable. Ce serait comme n'importe quel autre champ appelé foobar.

La dénomination smilarity n'influence en rien le compilateur.

Le compilateur générera un champ dans les coulisses mais vous n'aurez aucun accès au champ de sauvegarde de la propriété automatique.

This post montre comment les choses fonctionnent au niveau IL (Intermediate Langauge, Assembly of C#).

+0

Merci pour le lien. – Viper

-1

Pourquoi le ferais-je? Le champ de sauvegarde n'a pas besoin d'être (et n'est souvent pas) nommé ainsi.

+0

Je veux dire, quand vous n'utilisez pas les propriétés automatiques. Vous ne devez donc pas toujours lier les noms "Foobar" et "foobar" en tant que "propriété - champ d'accompagnement correspondant" dans votre tête. – Dyppl

0

Le compilateur n'utilisera pas cette variable, non. Pour utiliser votre variable que vous devrez écrire

private string foobar = string.Empty; 

public string Foobar 
{ 
    get { return foobar; } 
    set { foobar = value; } 
} 

Si vous avez ReSharper, vous pouvez configurer des modèles pour le faire. Resharper va également générer un getter à partir d'une variable privée inutilisée pour vous.

Questions connexes