Salut salut !
Je sais pas si il est possible de faire ce que je vais vous ennoncez c'est pour cela que je passe par le forum pour demander à des Csharpeur compétent !
J'ai deux projets, une bibliothéque de classes et une WindowsApplication dans laquelle se trouve une référence sur la bibliothéque.
A partir de l'interface je voudrais passer en paramètre, à une méthode d'une classe de la bibliothéque, une structure que j'ai moi même créer. Cette méthode modifierai les valeurs de cette structure (donc passage en ref) et on pourrait la récupéré dans l'interface.
Pour passer la structure, il est nécessaire que les deux classes la connaissent, j'ai donc créer cette structure dans mes deux classes (même nom, même champs, même... tout pareil !)
Dans l'interface :
Dans la bibliotheque :
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 //Structure public struct maStructure { Int64 identifiant; String libelle; } //Instanciation maStructure resultat; public void maMethode() { Classe maClasse = new Classe(); //Classe est donc la classe contenu dans la bibliothèque maClasse.executer(ref resultat);//Passage de la structure }
Le compilateur, avec ses mots à lui, me dit que c'est pas possible :
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 public Class Classe { //Structure public struct maStructure { Int64 identifiant; String libelle; } //Je vous passe le constructeur public void executer(ref maStructure) { //Modification de la structure } }
Impossible de convertir implicitement le type 'Bibliotheque.Classe.maStructure' en 'WindowsApplication1.Interface.maStructure'
En gros il refuse de considérer que ces structure sont identiques.
NDLR : j'ai également essayer cela en mettant la structure en valeur de retour mais les résultats sont identiques !
Est que ce que je fait est complétement tordu ? Devrais-je passer par une classe dans la bibliothèque qui me permettrait aisément de faire cela ?
Un avis ? Une idée ? Une suggestion ? Une bière ?
Merci de vos réponse et @+
Antoine
Partager