2008-12-03 4 views

Répondre

3

Si vous mettre en œuvre la méthode partielle, alors je m'attendrais à ce qu'il n'y ait pas de différence notable. C# utilise toujours callvirt pour appeler les méthodes d'instance, même si elles ne sont pas virtuelles, il n'y aura donc pas beaucoup de changement.

Si vous ne pas implémenter la méthode partielle, l'appel lui-même est retiré - donc il n'y a jamais une pile pour préparer, etc. Ce sera infintessimally plus rapide, ce qui est pourquoi il est très bien pour le code généré pour inclure un nombre ridicule de stubs de méthode partielle: si vous ne les utilisez pas, ils n'existent pas.

La plus grande raison d'utiliser des méthodes partielles est simplement de ne pas avoir à sous-classer l'objet. Vous ne pouvez pas déclarer les parties "abstract"/"virtual" et "override" d'une méthode virtuelle dans la même classe (même partielle). Les méthodes partielles résout ce problème, et le problème des points d'extensibilité de la publicité (sans avoir à utiliser la réflexion). Très bon pour les outils de génération de code ;-

1

Il peut y avoir une différence mineure, mais elle devrait être négligeable sauf si la méthode est appelée de façon répétée dans une boucle.

Les méthodes partielles ne sont que du sucre syntaxique permettant la division d'une classe entre plusieurs fichiers.

Lorsqu'ils sont compilés, ils sont exactement les mêmes que si toutes les méthodes avaient été dans le fichier. En d'autres termes, le seul 'ralentissement' que vous êtes susceptible de voir avec une méthode partielle est le temps de compilation légèrement plus long :)

EDIT: Et comme la réponse ci-dessous le dit, ils ne sont même pas là s'ils peuvent ' t être trouvé lors de la compilation.

Questions connexes