90 votes

Reliure précoce et tardive

J'essaie de comprendre à quel moment la liaison précoce ou tardive se produit en C#.

Les méthodes non virtuelles sont toujours liées par anticipation. Les méthodes virtuelles sont toujours liées tardivement : le compilateur insère du code supplémentaire pour résoudre la méthode réelle à laquelle se lier au moment de l'exécution et vérifie la sécurité des types. Le polymorphisme de sous-type utilise donc la liaison tardive.

L'appel de méthodes par réflexion est un exemple de liaison tardive. C'est nous qui écrivons le code pour y parvenir, et non le compilateur. (Par exemple, l'appel de composants COM).

VB.NET prend en charge les liaisons tardives implicites lorsque l'option Strict est désactivée. Un objet est lié tardivement lorsqu'il est affecté à une variable déclarée comme étant de type Object. Le compilateur VB insère du code pour se lier à la bonne méthode au moment de l'exécution et pour détecter les appels invalides. C# ne prend pas en charge cette fonctionnalité.

Est-ce que je vais dans la bonne direction ?

Qu'en est-il de l'appel de délégués et de l'appel d'une méthode par le biais d'une référence d'interface ? S'agit-il d'une liaison précoce ou tardive ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X