je vais essayer de répondre à ta question
1-la variable sender n'est modifiable que dans le corps de la procédure c'est pour cela qu'elle est passée par valeur
2-ce n'est pas possible de raisonner avec des objets passés par référence parce que faut pas perdre de vue que .NET s'appuie essentiellement sur les fonctionnalités de Windows ( les API win32 ) sauf que c'est géré avec du "managed code".
Pour créer une fenêtre en win32 tu vas appeler CreateWindowEx tu obtiens un handle de fenêtre un HWND et un "contexte" de dessin un HDC..
or le problème c'est que ces objets ne sont pas toujours valides dans la durée de fonctionnement du programme et ils ne peuvent être modifiés que selon un certain "contexte" ( je suppose allocations mémoire de l'OS, gestion de la mémoire RAM, du tracé des fenêtres par le GDI).
Si l'OS alloue un HWND de fenêtre il ne faut surtout pas que la procédure à laquelle est passée l'objet modifie le handle de fenêtre.
Voilà pourquoi la durée de vie d'un objet dans une procédure n'est limité qu'à la procédure
Partager