2016-03-22 2 views
0

Je suis la plus simple propriété commeméthode définie propriété sans variable privée

public bool Something { get; set; } 

Mais dans presque chacun d'eux que je dois appeler une méthode après jeu, si une ligne est devenu

private bool _something; 
public bool Something { 
    get{ 
     return _something; 
    } 
    set{ 
     _something = value; 
     CallMethod(); 
    } 
} 

Mais c'est cassé tout le côté visuel du code. Donc, ma question est si je peux appeler la méthode setter et rester avec le code clair?

+3

qui semble bien. tout ce que vous faites ne ferait qu'ajouter de la complexité. La beauté est dans l'oeil de celui qui regarde. – user1666620

+1

Que faites-vous _doing_ dans 'CallMethod'? Vous pouvez regarder certaines bibliothèques de programmation orientées aspect afin de voir si elles prennent en charge les propriétés automatiques. –

+0

Tout ce que 'CallMethod' fait ... Dans la prochaine version de C#, ils devraient faire ' public bool Something {get; set {CallMethod(); }} ' –

Répondre

0

Pour autant que je sache, la réponse simple est non. Lorsque vous créez votre propriété avec un get et un set, cela s'appelle une auto-propriété. Le compilateur crée toujours le code complet avec la variable privée de support.

Ce que vous avez serait considéré comme une pratique de codage standard. C'est quelques lignes de code supplémentaires, mais facilement lisibles.