Je ne sais pas pourquoi j'ai commencé à penser à ce sujet, mais maintenant je n'arrive pas à arrêter.
En C# - et probablement beaucoup d'autres langues, je me souviens que Delphi utilisée pour vous permettre de faire de ce trop - il est légal d'écrire cette syntaxe:
class WeirdClass
{
private void Hello(string name)
{
Console.WriteLine("Hello, {0}!", name);
}
public string Name
{
set { Hello(name); }
}
}
En d'autres termes, la propriété dispose d'un setter mais pas de lecture, c'est en écriture seule.
Je suppose que je ne peux pas penser à une raison pourquoi cela devrait être illégal, mais je ne l'ai jamais vu à l'état sauvage, et j'ai certains semblent assez brillant/horrible code dans la nature. Il semble comme une odeur de code; il semble que le compilateur doit être de me donner un avertissement:
CS83417: la Propriété 'Name' semble être complètement inutile et stupide. Mauvais programmeur! Envisager de remplacer une méthode.
Mais peut-être que je n'en ai pas fait assez longtemps, ou qui ont travaillé dans un champ trop étroit pour voir des exemples de l'utilisation efficace d'une telle construction.
Sont là des exemples de la vie réelle de l'écriture uniquement les propriétés qui ne peuvent pas être remplacés par des droites les appels de méthode ou deviendrait, à moins intuitif?