Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2990 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Type d'argument non conforme CLS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] Type d'argument non conforme CLS

n°1255360
fluminis
Posté le 29-11-2005 à 15:20:53  profilanswer
 

Boujour à tous,
 
Je ne comprends pas une erreur que me crache mon compilateur (Visual Studio) :
 
"Le type d'argument 'Hornet.HornetModel.UserClass' n'est pas conforme CLS"
 
or ma classe est la plus simple possible :

Code :
  1. using System;
  2. namespace Hornet.HornetModel
  3. {
  4. public class UserClass
  5. {
  6.  private string className = "";
  7.  public string ClassName
  8.  {
  9.   get
  10.   {
  11.    return className;
  12.   }
  13.   set
  14.   {
  15.    className = value;
  16.   }
  17.  }
  18.  public UserClass(string className)
  19.  {
  20.   this.className = className;
  21.  }
  22. }
  23. }


 
La classe UserClass est dans une bibliotheque de classe (1) et, depuis une autre bibliotheque de classe (2), je tente de faire ça :

Code :
  1. public delegate void AddObject_Handler(UserClass userClass);


C'est sur cette ligne que j'ai l'erreur.
 
Je ne comprends pas, si je declare un object UserClass dans (2) ça ne pose pas de probleme et ça compile sans histoire.
 
Quelqu'un aurrait il deja rencontrer cette erreur ?
 
Merci d'avance
 
Fluminis


Message édité par fluminis le 29-11-2005 à 15:22:18

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
mood
Publicité
Posté le 29-11-2005 à 15:20:53  profilanswer
 

n°1255374
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-11-2005 à 15:37:26  profilanswer
 

Ici ça marche très bien (Visual C# Express 2005)
 

Code :
  1. using System;
  2. namespace Hornet.HornetModel
  3. {
  4.     public class UserClass
  5.     {
  6.         private string className = "";
  7.         public string ClassName
  8.         {
  9.             get
  10.             {
  11.                 return className;
  12.             }
  13.             set
  14.             {
  15.                 className = value;
  16.             }
  17.         }
  18.         public UserClass(string className)
  19.         {
  20.             this.className = className;
  21.         }
  22.     }
  23. }


 

Code :
  1. using System;
  2. namespace Hornet.HornetModel
  3. {
  4.     public delegate void AddObject_Handler(UserClass userclass);
  5.     public class theTest
  6.     {
  7.     }
  8. }


 
0 errors, 0 warnings

n°1255379
fluminis
Posté le 29-11-2005 à 15:44:58  profilanswer
 

Je sais pas pourquoi mais ici ça ne fonctionne pas tel quel.
 
Je viens de rajouter ça en haut de mon fichier :
[assembly:CLSCompliant(true)]
 
Et ça marche maintenant :s
D'apres ce que je viens de lire, ça ne fait que forcer le compilateur a tester si la classe est CLS compilant, sinon il ne le fait pas tout seul.
 
Très bizarre tout ça, j'en perds mon latin.


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1255469
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-11-2005 à 18:20:18  profilanswer
 

t'es sous .NET 1.1 ? parce que moi j'ai testé sous 2.0

n°1255473
fluminis
Posté le 29-11-2005 à 18:24:49  profilanswer
 

Je sus sous .Net 1.1 (Visual 2003)
Et j'ai donc 2 bibliotheque de classe et un exe
Est ce que ca pourrait venir de ce que les evenements requierent des arguments dérivant de EventArg ?


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1255479
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-11-2005 à 18:33:09  profilanswer
 

Non.
 
Un delegate ne sert pas qu'à traiter les évenements. Tu t'en sers aussi pour les callback, etc... Tu peux lui fournir n'importe quel argument.
 
Tu peux poster ton code entier stp ?

n°1255512
fluminis
Posté le 29-11-2005 à 19:06:43  profilanswer
 

Non, je suis vert :(
 
Je viens de commenter la ligne magique [assembly:CLSCompliant(true)]
que j'avais rajoutée tout a l'heure en haut de mon fichier, et ça compile encore...
 
L'erreur n'est pas revenue :s
 
Vraiment etrange, mais ça m'a fait perdre du temps cette histoire.
 
Merci beaucoup pour tes réponces, j'espère que le problème ne reviendra plus.


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1255560
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-11-2005 à 20:16:42  profilanswer
 

Quand c'est comme ça, un bon coup de Clean et Rebuild all, et en avant !


---------------
J'ai un string dans l'array (Paris Hilton)
n°1255562
fluminis
Posté le 29-11-2005 à 20:18:18  profilanswer
 

Je saurais pour la prochaine fois :)
Merci


---------------
http://poemes.iceteapeche.com - http://www.simuland.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Type d'argument non conforme CLS

 

Sujets relatifs
Recuperer un type generique par intraspection.[VBA-EXCEL 2003] argument non facultatif pour textbox
Je cherche un exemple d'algo type arbre shvdeux type de requete laquelle est la mieux ?
value pour un input de type fileType de donnée ERREUR énorme!
Le parametre numérique pour les champs de type numeric sert à quoi ?Connaître le type d'un fichier
Le value dans un type=fileDelphi-Crystal - Verifier type parametre
Plus de sujets relatifs à : [C#] Type d'argument non conforme CLS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR