Impossible de convertir type void en observable collections
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)); } }