2010-06-02 7 views
1

J'ai une propriété publique dans une classe. Je veux une valeur par défaut -1 pour cette propriété sans une variable privée comme _MyField (parce que trop de propriétés dans cette classe, je ne les ajouterai pas une par une).Valeur par défaut pour les propriétés publiques

public int MyProperty { get; set; } 

[DefaultValueAttribute] ne fonctionne pas pour ce problème, je pense. Des idées? Merci.

MISE À JOUR @ août 2015 Maintenant, nous avons C# 6!

public int MyProperty { get; set; } = 100; 

public string EasyToUse { get; } = "YES!"; 

Répondre

3

Vous avez essentiellement deux options - vous pouvez définir la propriété dans le constructeur de l'objet, ou utiliser un champ privé.

Personnellement, je pense que le constructeur est la meilleure option, car il est clair pour les personnes lisant votre code quelles sont vos intentions pour une nouvelle instance de votre classe.

[DefaultValue] est un attribut destiné à être utilisé avec la fonctionnalité de concepteur visuel et n'a aucun effet sur votre logique de classe.

+0

Aucune autre façon de créer une valeur par défaut? Vous savez que je veux vraiment une expression comme celle-ci :( public int MyAttr = -1 {get; set;} –

+2

Danny, qui va à l'encontre de l'objectif des propriétés automatiques. –

0

Définissez simplement une affectation this.MyAttr = -1 dans le constructeur de l'objet.

Questions connexes