2009-12-10 3 views
0

Je veux écrire un sous-programme pour savoir quoi faire et revenir.Retour d'un sous-programme

Avant de sauter sur le "Un sous-programme qui retourne est une fonction LOL!" Je veux que le retour soit exécuté comme s'il était dans le corps de la fonction appelant le sous-programme, comme si j'avais un préprocesseur pour faire la substitution, sinon cette base de code deviendrait très lourde et retournerait la valeur de retour d'une fonction semble kludgy. Will vb (désolé je ne peux pas être plus précis sur quelle version-j'écris des formules pour un système embarqué, nos docs de l'API sont "il fonctionne vb") laissez-moi faire ou tomber dans un tas?

+1

Recherchez si vb (.net?) Peut renvoyer des pointeurs ou des références aux fonctions. Je sais que vous pouvez en C/C++. Ensuite, vous pouvez exécuter aveuglément la réponse de votre «sous-programme». – whatsisname

+0

@whatsisname: Je ne suis pas exactement sûr de comprendre ce que vous voulez dire? Je peux passer des références à une fonction avec le mot-clé AddressOf en fonction de ce qu'ils font. Malheureusement, même si je ne suis pas sûr de savoir comment cela aide? – richo

Répondre

2

Je veux le retour à exécuter comme il était dans le corps de la fonction appelant le sous-programme, comme si j'ai un préprocesseur pour faire la substitution, parce que sinon ce code de base va se difficiles à manier très vite, et renvoyer la valeur de retour d'une fonction semble kludgy.

Ce n'est pas le cas. Les appels de queue sont une pratique courante qui fonctionne très bien.

Ils sont de loin préférables que d'avoir une fonction qui ne peut jamais être appelée, sauf si vous voulez retourner sa valeur.

+0

La fonction sera inutile dans tout autre contexte. La prochaine option la plus préférable consiste à implémenter mon propre préprocesseur pour y substituer la macro. Merci cependant, je peux y aller entre-temps pour le faire fonctionner, car si rien d'autre si mis en œuvre correctement, ils devraient être un peu interchangeables. – richo

0

Il semble que vous demandiez si les macros de style C/C++ peuvent être implémentées dans VB, la réponse est non. Vous pourriez peut-être faire semblant en générant vbscript, et en remplaçant les bonnes choses.

Lambdas et les délégués dans VB.Net ne sont pas vraiment la même chose que ce que vous demandez - si mon interprétation est correcte.