Apparemment, vous pouvez changer le this
de n'importe où dans votre structure (mais pas dans les classes) :
struct Point
{
public Point(int x, int y)
{
this = new Point();
X = x; Y = y;
}
int X; int Y;
}
Je n'ai jamais vu cela auparavant et je n'en ai jamais eu besoin. Pourquoi voudrait-on faire ça ? Eric Lippert nous rappelle qu'une fonctionnalité doit être justifiée pour être mise en œuvre. Quel grand cas d'utilisation pourrait justifier cela ? Existe-t-il des scénarios où cela est inestimable ? Je n'ai pas trouvé de documentation à ce sujet 1 .
En outre, pour appeler les constructeurs, il existe déjà une syntaxe alternative mieux connue, de sorte que cette fonctionnalité est parfois redondante :
public Point(int x, int y)
: this()
{
X = x; Y = y;
}
J'ai trouvé cette fonctionnalité dans un exemple de l'ouvrage de Jeffrey Richter intitulé <a href="http://rads.stackoverflow.com/amzn/click/0735667454">CLR via C# 4ème édition </a>.
1) Apparemment, c'est dans le <a href="http://stackoverflow.com/a/14767499/146622">Spécification C# </a>.