J'ai beaucoup de nombreuses fonctions (100+ estimé) et plus de la moitié sont seulement nécessaires dans le fichier son défini. Existe-t-il un moyen de définir des fonctions pour que la portée soit au niveau du fichier?Fonctions scope à un niveau de fichier en C#/.NET?
Répondre
Premièrement; C# a des méthodes, pas des fonctions ;-p
Les méthodes sont limitées au type; Si vous essayez de limiter à un fichier , puis-je supposer qu'il s'agit d'une classe partielle (ou peut-être un ensemble de types imbriqués) qui est (/ sont) répartis sur plusieurs fichiers? Si ce n'est pas le cas (et il s'agit d'un fichier unique) il suffit de rendre les méthodes privées. Si elle est actuellement partielle, alors non: il n'y a aucun moyen d'éviter les appels croisés entre différents fichiers de même type. Vous pouvez créer des types statiques imbriqués par partie partielle, mais cela semble moche, hacky, et tout simplement faux.
Si cela ne vous blesse pas activement - peut-être ne le changez pas?
@Marc, l'autre possibilité est que l'OP parle de _fichier_ parce qu'il ne comprend pas la POO. –
Oui c'est une classe partielle. Je suppose que je suis juste inquiet si je donne à quelqu'un d'autre de maintenir le code (c'est un projet personnel et un site astucieux) il aura très peur. Peut-être pas en lisant le code mais en faisant des changements et en cherchant la bonne fonction. –
Non. Il n'y a aucun moyen de restreindre l'accès à un seul "fichier". Vous pouvez mettre toutes les fonctions dans une seule classe et faire celles que vous voulez protéger private
. Vous pouvez également placer toutes les fonctions dans un autre assemblage et créer les fonctions protégées internal
.
Une idée si je peux en quelque sorte créer une classe privée et que le pointeur 'this' accède à tout ce que la classe externe peut accéder? (probablement pas) –
Les classes internes peuvent accéder aux membres privés dans les classes externes. C'est encore une autre solution. Cela ne semble pas très différent de simplement rendre les méthodes privées dans la classe externe directement à moi. –
hmm, je vois qu'une classe interne peut accéder aux membres de la classe externe * static *. Mais il ne semble pas pouvoir accéder à 'ceci '. Cela ne semble pas fonctionner comme je l'espère. Pour accéder à tout ce que l'autre fonction peut faire avec cela. Copier/coller une fonction dans la classe interne provoque de nombreuses erreurs de compilation. Je comprends pourquoi ça marche mais j'espérais que ça marcherait. –
Vous pouvez limiter la portée à un ensemble à l'aide de internal
, mais pas au niveau du fichier.
- 1. Organisation des fonctions de haut niveau dans un fichier Javascript
- 2. Autofac Session Scope
- 3. validates_uniqueness_of scope à plusieurs colonnes
- 4. Comment spécifier le niveau d'isolation de base de données à utiliser, à un niveau élevé?
- 5. Je veux connaître la différence entre les fonctions de bas niveau et les fonctions de haut niveau
- 6. jQuery/javascript variable scope
- 7. Définition Constantes par Scope
- 8. php pdo connection scope
- 9. Struct Scope Access
- 10. Spring ApplicationContext Bean Scope
- 11. Python shell et execfile scope
- 12. PHP Exiger Global Scope
- 13. xsl scope help
- 14. Java objet référence/scope question
- 15. Besoin d'aide avec JavaScript variable scope/OOP et les fonctions de rappel
- 16. Java en utilisant les fonctions dans un fichier
- 17. n'a pas réussi à mettre à niveau un jeton
- 18. Python - Écrire dans un fichier texte en utilisant des fonctions?
- 19. Javascript scope help
- 20. Structuremap Scope/Lifecycle Guidance?
- 21. aide combinant jquery fonctions dans un fichier
- 22. Utilisation des fonctions dans un fichier externe?
- 23. PHP Variable Scope Numéro
- 24. Property Scope (Iphone)
- 25. PHP Class Scope
- 26. tableau à un niveau supérieur
- 27. Three20 Search Scope
- 28. Comparaison de haut niveau et fonctions d'échange (CAS)?
- 29. Appel de fonctions de niveau membre à partir d'une bibliothèque de liens dynamiques en utilisant pinvoke en C#?
- 30. IronRuby, DLR, Inclusion Scope
Pouvez-vous ajouter plus d'informations à cette question, il n'est pas clair comment vous voulez limiter la portée des fonctions au niveau d'un fichier. S'agit-il de classes ou de classes partielles ou d'une autre construction? Quel est le but des restrictions? Pourquoi avoir des fonctions dans un 'fichier' qui ne sont pas nécessaires? Serait-il préférable de refactoriser votre code pour séparer les 100+ fonctions en plus petites collections pour réduire le nombre de fonctions 'dans la portée' à tout moment. – Lazarus