[ Est-il possible d'utiliser des classes partielles pour créer des méthodes spécifiques sur ces classes entres différents projet à l'intérieur d'une solution Visual Studio ? ]
Bonjour à tous,
Je développe actuellement un jeu d’échec en c# qui va utiliser une interface dans le terminal pour débuter, puis une interface Silverlight par la suite.
Pour prendre de bonnes habitudes, dans ma solution Visual Studio je sépare le code en couche (objet et affichage) en créant :
- un premier projet qui contient les bibliothèques des objets (Pieces, Roi, Dame… Joueur, JoueurBlanc… Échiquier)
- un second projet destiné à l’affichage, qui importe ces bibliothèques et implémente les objets (et affiche l’échiquier dans un terminal en appelant la Méthode « afficher() » de l’objet échiquier ).
Ainsi ma méthode « afficher() », est implémentée dans mon premier projet pour l’instant.
Cela peut aller tant que je n’implémente pas le troisième projet qui lui va également importer les bibliothèques et vouloir afficher l’échiquier, mais pas de la même manière puisque ça sera une interface en Silverlight.
Il faudrait donc migrer les méthodes d’affichages existantes en mode terminal (Console.Write) dans le second projet. Et là se pose le problème : comment faire ?
- 1ère solution, dans le second projet destiné l’affichage dans le terminal, créer des classes qui hérite de mes classes du premier projet (Pièces, Roi… Echiquier) et faire de même pour le troisième avec un affichage spécial silverlight. Le problème, c’est que :
- c’est « long » à faire
- que je vais devoir le refaire pour chaque classe
- qu’il va falloir que je recode les constructeurs
- et surtout que je trouve de nouveaux noms pour mes classes héritées… Je ne me voix pas instancier des objets d’un nom « EchiquierHerité e = new EchiquierHérité(); ».- 2éme solution éventuelle, les classes partielles.
Avec les classes partielles, il est possible de diviser en plusieurs fichiers une classe. Je me suis dit super ! Toute mes classes vont être partielle et :
- dans le projet n°2 (Terminal) : j’implémenterai les méthodes « affichage() » version terminal.
- dans le projet n°3 (Silverlight) : j’implémenterai les méthodes « affichage() » version silverlight.
Trop beau pour être vrai , je n’ai pas de sources certifiant cela mais : je pense que les classes partielles ne marche que si les fichiers sont dans le même projet … ce qui serait normal, si l’on réfléchit à la manière dont sont compilé les projets des solutions Visual Studio.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 FICHIER PROJET 1 public partial class Roi { public Echiquier() { //Constructeur } } FICHIER PROJET 2 public partial class Roi { public void afficher() { Console.Write(); // ...... } } FICHIER PROJET 3 public partial class Roi { public void afficher() { DessinerEnSilverlight(); // ...... } }
Est-ce que cela ne marche pas parce que je m'y prend mal ? Ou est-ce qu'il est réellement impossible de développer des "Partial Class" sur différents projets à l'intérieur d'une solution Visual Studio 2008 ?
Sur ce, avez vous rencontré ce type de problème ? Avez vous d'autres solutions ?
Merci d'avance pour vos réponses !
Partager