J'ai une classe qui commence à être grande. Comment puis-je le définir afin que les méthodes puissent s'étendre sur différents fichiers .cs?C# Comment définir des méthodes pour la même classe dans des fichiers multi-formats?
Répondre
Vous pouvez déclarer votre classe en tant que partial
. Cela vous permet de le diviser en plusieurs fichiers.
// File 1:
partial class Test {
public void Method1() { … }
}
// File 2
partial class Test {
public void Method2() { … }
}
Pourquoi cela a-t-il été déprécié? –
Vous pouvez utiliser une classe partielle pour cela.
http://msdn.microsoft.com/en-us/library/wa80x488(VS.80).aspx
Employee_1.cs
public partial class Employee
{
public void DoWork()
{
}
}
Employee_2.cs
public partial class Employee
{
public void GoToLunch()
{
}
}
Utilisez le mot-clé partial
.
Foo.cs
public partial class Foo
{
.....
}
xFoo.cs
public partial class Foo
{
......
}
Cependant, si votre classe devient grand, il est probablement un peu d'une odeur de code et le temps de penser à refactoring.
Il peut être agréable d'avoir plusieurs fichiers plus petits, mais il sera plus difficile de trouver le bon code quand il est divisé entre deux fichiers.
Je suis d'accord. Typiquement, partial n'est approprié que lorsqu'une partie de la classe est générée automatiquement. Sinon, il suffit d'avoir un gros fichier de classe bien organisé, ou bien de refactoriser (plusieurs classes avec des responsabilités logiques). –
D'accord avec ck, même si ce n'est pas une réponse à la question et aurait donc dû être écrit comme un commentaire, comme Jauco. – OregonGhost
- 1. Organisation des méthodes pour effectuer des tests - C#
- 2. Comment définir la cachabilité des fichiers statiques dans IIS?
- 3. méthodes pour stocker des fichiers binaires dans SVN
- 4. Est-ce mal d'avoir des méthodes statiques et non statiques dans la même classe?
- 5. Définir la classe dérivée dans Masterpage (C#)
- 6. Comment utiliser define_method pour créer des méthodes de classe?
- 7. Méthodes d'instance appelant des méthodes de classe appelant des méthodes d'instance
- 8. Comment définir le dossier des fichiers téléchargés pour SWFUpload?
- 9. dans jQuery, définir des plages avec la même classe à afficher: inline à partir de: bloc
- 10. Comment développer des méthodes qui ont la même fonctionnalité pour certaines entités?
- 11. Surcharge des méthodes STL C++
- 12. Obtenir la liste des méthodes de classe pour une classe arbitraire
- 13. Callbacks C++ utilisant des fonctions Boost et des méthodes de classe C++
- 14. Renommer des fichiers de la même manière encore et encore
- 15. Différentes méthodes pour utiliser une classe/struct - C++
- 16. F # Méthodes statiques Dans la classe
- 17. Comment faire une classe imbriquée PHP ou des méthodes imbriquées?
- 18. Traitement des fichiers C++
- 19. VS2008 C# Exceptions avec des méthodes invoquées par la réflexion
- 20. Share NSArray Contenu entre plusieurs méthodes dans une même classe
- 21. Comment ajouter des méthodes de classe pratique pour une classe Singleton en rubis
- 22. Importer des méthodes/classes C dans un projet C#
- 23. Quelle est la meilleure stratégie pour obtenir/définir des métadonnées sur les méthodes Ruby à l'exécution?
- 24. Accès méthodes statiques sur une classe générique dans C#
- 25. Est-ce que javac devrait trouver des méthodes en dehors d'une classe anonyme du même nom?
- 26. Comment autocorriger la documentation xml des méthodes
- 27. Refactorisation des méthodes dérivées des classes dérivées à la méthode de la classe de base commune? (C#)
- 28. Comportement de conservation des objets des méthodes de classe Objective-C
- 29. Comment définir et utiliser des variables statiques dans la classe F #
- 30. Méthodes de groupe dans la classe abstraite
http://msdn.microsoft.com/en-us/library/wa80x488(VS.80).aspx – rahul
Alors que les partiels sont en effet très agréable, s'il vous plaît arrêtez-vous un instant et demandez-vous si votre classe en fait peut-être trop . Si votre description de la fonction de classe est "Eh bien, elle fait X et Y et Z", vous pourriez vouloir la diviser en trois classes XY et Z. C'est un peu difficile de tout diviser mais votre code finira bien plus propre et plus facile à entretenir. Ou votre classe pourrait déjà être aussi petite que possible, bien sûr dans ce cas je vais juste me taire :) – Jauco
D'accord avec Jauco. Je pense que les partiels ont été principalement introduits pour séparer le code généré par le concepteur du code écrit par l'utilisateur, plutôt que de faire d'énormes classes. Mais parfois, il n'y a pas moyen de contourner. – OregonGhost