2010-03-29 9 views
2

Je ne suis pas sûr de la clarté de ma question par le titre, mais j'essaie de faire des méthodes de classe au lieu de méthodes d'instance dans Visual Basic de sorte que je n'ai pas à gaspiller de la mémoire et du code en créant des objets temporaires pour exécuter des méthodes qui n'ont pas besoin de variables d'instance. Je ne suis pas sûr si vous pouvez le faire en VB mais je sais que vous pouvez en Objective-C en utilisant soit un signe "+" ou "-" devant la déclaration de la méthode. Et en C++ (au moins je pense, je ne me souviens pas) vous mettez le mot-clé statique ou mot-clé const en face de la fonction.Création de méthodes de classe au lieu de méthodes d'instance dans VB.NET

Comment est-ce que je ferais ceci dans VB si c'est possible? Ou devrais-je simplement créer un ensemble distinct de fonctions qui ne sont pas membres d'une classe?

Répondre

3

Si vous cherchez à définir des méthodes de classe dans VB.Net il vous suffit d'ajouter le modificateur Shared à la fonction

Class C1 
    Public Shared Function DoSomething() As String 
    ' Insert code here 
    End Function 
End Class 

Comme vous devez ou non utiliser une méthode de classe sur une méthode d'instance pour éviter les allocations. Je pense que vous utilisez le mauvais raisonnement ici. Je commencerais simplement par concevoir la classe pour avoir l'API la plus naturelle et la plus directe. Ensuite, après ce processus, si un profileur montre que l'allocation de petits objets est un problème, mettez à jour l'API pour en tenir compte. Prendre une décision de conception d'API pour des raisons de performances sans utiliser de profileur entraînera sûrement des efforts inutiles.

1

Vous souhaitez créer une méthode partagée dans VB.net.