Impossible de convertir type void en observable collections
danny243
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai une méthode de type void qui lit monfichier.json et elle est static ensuite dans mon mainWindow j'ai créé une observableCollection pour contenir la liste des catégories . je veux être capable d'assigner à ma ObservableCollection le contenu de chaque ligne de monFichier sauf que j'ai une erreur qui dit :
Erreur CS0029 Impossible de convertir implicitement le type 'void' en 'System.Collections.ObjectModel.ObservableCollection<TP2_JeuxSociete.CategorieJeu>' TP2_JeuxSociete
voilà une partie de mon code pouvez-vous m'aider
Erreur CS0029 Impossible de convertir implicitement le type 'void' en 'System.Collections.ObjectModel.ObservableCollection<TP2_JeuxSociete.CategorieJeu>' TP2_JeuxSociete
voilà une partie de mon code pouvez-vous m'aider
public static ObservableCollection<JeuSociete> jeu = new ObservableCollection<JeuSociete>();
public static ObservableCollection<CategorieJeu> cat = new ObservableCollection<CategorieJeu>();
private List<CategorieJeu> catSelected = new List<CategorieJeu>();
static int min = 1;
static int max = 5;
Intervalle i = new Intervalle(min, max);
private const string NOM_FICHIER = "ListeJeuSociete.json";
public MainWindow()
{
InitializeComponent();
jeu = JeuSociete.ChargerListeJeux();//on affecte jeu
//Voila mon erreur
cat = CategorieJeu.ChargerListeCategories();
lstCatJeu.ItemsSource = cat;
lsbMesCategories.ItemsSource = cat;
dgListeJeux.ItemsSource = jeu;
lsJeu.ItemsSource = jeu;
}
//La méthode qui lit le fichier.json
public static void ChargerListeCategories()
{
string[] lignes = System.IO.File.ReadAllLines(NOM_FICHIER);
foreach (string ligne in lignes)
{
LstCategories.Add(new CategorieJeu(ligne));
}
}
2 réponses
-
Une méthode de void n'as pas de type.
Ecrirecat = CategorieJeu.ChargerListeCategories();
reviens plus ou moins à dire cat = rien ou vide (attention pas null, null ça a une valeur)
Si tu veux pouvoir écrire ça, il faut que- la méthode ait un type
- ce type soit compatible de la variable à affecter
- la méthode retourne un résultat.
- le résultat est compatible du type de la méthodes
Par exempledouble UneMethode() { return 1;//un entier est compatible avec un double => ça fonctionne }
Si tu écrisbool leBooleen = UneMethode(); // un bool n'est pas compatible avec un double => ça ne fonctionne pas
Mais tu peux aussi faire en sorte que ta méthode remplisse la collection cat comme (ou à la place ? ) elle remplie la collection LstCategories.
PS si LstCategories c'est toujours ta listbox, alors le plus judicieux serait de binder cette listbox sur ta collection
-
Et si je faisais ça me dit les chemins code ne retournent pas tous une valeur
public static ObservableCollection<CategorieJeu>ChargerListeCategories() { string[] lignes = System.IO.File.ReadAllLines(NOM_FICHIER); foreach (string ligne in lignes) { LstCategories.Add(new CategorieJeu(ligne)); } }