class Bar
{
private byte[] dg;
Bar(byte[] datagram)
{
dg = datagram;
}
int Foo
{
get { return BitConverter.ToInt16(dg, 8); }
}
}
Quand les propriétés sont-elles évaluées? Au moment où Foo est accédé? Le débogueur évaluant toutes les propriétés me fait peur.Temps d'évaluation des propriétés C#
Il est généralement une mauvaise idée d'avoir un getter de propriété faire un travail approfondi, parce que quelqu'un utilisant votre code supposera que l'évaluation de la propriété sera une opération bon marché. Si ce n'est pas le cas, utilisez une méthode 'GetFoo()'. – Thorarin
Dans cet exemple, je ferais d'abord la conversion, puis je l'enregistrerais pour retourner dans Foo. –
@Ed Swangren Pourquoi enregistrer un tas de conversions si la plupart d'entre eux ne sont jamais utilisés ou seulement utilisés une fois. @Thorarin Je suis d'accord qu'une méthode serait beaucoup plus agréable. Mais avec une bonne documentation, la propriété sera très bien. Si les gens veulent mettre quelque chose d'aussi bête que les propriétés dans une langue, alors je vais les utiliser. –