10
votes

Comment devrais-je utiliser des propriétés dans C #?

Je ne suis pas sûr parce que dans Java Getter / Setter cherche un peu différent, mais quelle est la "façon C #" pour coder ce truc?

option a.) p> xxx pré>

b.) p> xxx pré>

c.) p>

   public string name {get; set;}
   public int time {get; set;}


0 commentaires

7 Réponses :


3
votes

Dans votre cas spécifique (pas de logique sur getter ou Setter), la meilleure option est C (avec une petite modification des noms de propriétés à suivre les normes C #) xxx


0 commentaires

11
votes

Si vous n'avez pas besoin d'accéder aux champs de support sous-jacents, les propriétés automatiques sont la manière suggérée qui est (c). Cependant, selon la convention de dénomination .NET, ils devraient être Pascalcase.

public string Name { get; set; }
public int Time { get; set; }


0 commentaires

26
votes

Que diriez-vous de D, suivez les conventions de nommage .net: xxx

Ne vous inquiétez pas de la propriété manuellement vous-même sauf si vous ne faites quelque chose de non trivial.

Si vous do écrivez la mise en œuvre de la propriété manuellement, c'est à vous de choisir comment vous nommez la variable privée. Personnellement, j'utiliserais: xxx

... mais si vous voulez utiliser des soulignements, c'est votre prérogative.

comme pour la commande des membres - c'est Encore plus votre propre choix. En supposant que vous travaillez avec une équipe, parlez avec l'équipe et voyez quelle est la convention locale.


0 commentaires

1
votes
public string Name {get; set;}
public int Time {get; set;}

0 commentaires

6
votes

Les deux premiers sont juste les convensions de nommage que vous devriez choisir en fonction du groupe de la société / DEV ou de votre propre décision.

Le troisième cas est le moyen bref de décaltrer la même propriété , où le champ réel sera généré par exécution elle-même.

Avantages courts: c'est court et facile .

Inconvénients courts: ne peut pas mettre quelque chose à l'intérieur getter / setter, ne peut pas mettre un point d'arrêt dans Visual Studio ...

J'espère que cela aide.


0 commentaires

3
votes

dépend du cas, lorsque vous définissez les champs, un caractère de soulignement est utilisé et si vous avez juste besoin d'un simple getter / setter, il n'est pas nécessaire de définir vous-même les champs, car le compilateur les définira pour vous en arrière-plan.


0 commentaires

2
votes

J'irais pour l'option, la plupart des autres déjà affichés.

public string Name {get; protected set;}
protected int Time {get; private set;}


0 commentaires