Cette question est liée, mais pas la même chose que ceci: How do you give a C# Auto-Property a default value?En C#, puis-je faire en sorte que la propriété auto effectue un travail supplémentaire avec l'aide d'un attribut?
J'aime des propriétés d'auto, mais parfois je dois faire quelque chose comme ceci:
private string someName;
public string SomeName
{
get
{
return someName;
}
set
{
someName = value.Trim();
}
}
Si je dois faire la même chose que beaucoup fois, je commence à souhaiter que je n'ai pas besoin de taper autant de lignes/caractères de code. Je veux être en mesure d'intercepter la valeur et changer un peu comme si:
public string Somename
{
get;
[Trim]
set;
}
Est-il possible de faire quelque chose comme ça? Serait-ce stupide? Y a-t-il un meilleur moyen? D'autres commentaires généraux? J'avoue, l'exemple que j'ai donné est un peu hypothétique et je ne peux pas trouver le code exact maintenant qui m'a fait penser à ceci.
Merci.
Merci, ne Microsoft pas fournir ses propres solutions pour la programmation orientée aspect? –
Dans une certaine mesure, avec son objet ContextBound, mais ce n'est pas une très bonne solution pour la plupart des implémentations AOP. Les tisseurs d'IL y sont beaucoup mieux ces temps-ci et peuvent travailler avec n'importe quel type d'objet, alors qu'avec la méthode Microsoft, vous devrez hériter d'une classe commune. –
Attendez, un "tisserand IL" est quelque chose qui étend le sucre syntaxique dans le code différent? Est-il apparenté 'using <=> try/finally', le code contracte la magie? Je penserais qu'un bug dans un tisserand IL serait quelque peu difficile à tracer, car il pourrait confondre le débogueur. –