Problème accessibilité de classe
Bonjour à tous,
dans mon projet j'ai une classe Joueur en Private
Code:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace LottoVerification
{
class Joueur : INotifyPropertyChanged
{
XmlReader reader = new XmlReader();
private bool continuer;
private string nom;
private int id;
private readonly ObservableCollection<NumeroLotto> numeros = new ObservableCollection<NumeroLotto>();
public ObservableCollection<NumeroLotto> Numeros
{
get
{
return numeros;
}
}
public int Id
{
get
{
return id;
}
set
{
id = value;
}
}
public Joueur(string p_nom, int p_num1, int p_num2, int p_num3, int p_num4, int p_num5, int p_num6)
{
id = reader.GetAvailableId();
nom = p_nom;
numeros.Add(new NumeroLotto(p_num1, false));
numeros.Add(new NumeroLotto(p_num2, false));
numeros.Add(new NumeroLotto(p_num3, false));
numeros.Add(new NumeroLotto(p_num4, false));
numeros.Add(new NumeroLotto(p_num5, false));
numeros.Add(new NumeroLotto(p_num6, false));
}
public Joueur()
{
id = reader.GetAvailableId();
nom = "";
numeros.Add(new NumeroLotto());
numeros.Add(new NumeroLotto());
numeros.Add(new NumeroLotto());
numeros.Add(new NumeroLotto());
numeros.Add(new NumeroLotto());
numeros.Add(new NumeroLotto());
}
public string Nom
{
set
{
nom = value;
continuer = true;
if (String.IsNullOrEmpty(value))
{
continuer = false;
throw new ApplicationException();
}
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Nom"));
}
}
get
{
return nom;
}
}
public bool Continuer
{
get
{
return continuer;
}
set
{
continuer = value;
}
}
public void trierNumeros()
{
NumeroLotto numTmp = new NumeroLotto();
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 6; j++)
{
if (i != j)
{
if (this.numeros[i].Numero < this.numeros[j].Numero)
{
numTmp = this.numeros[i];
this.numeros[i] = this.numeros[j];
this.numeros[j] = numTmp;
}
}
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
} |
et un formulaire qui me permet d'ajouter ces joueurs à un fichier XML.
Seulement j'aimerais utiliser le formulaire d'Ajout pour faire de la modification.
j'ai donc deux constructeur dans ma classe AjoutJoueur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public AjoutJoueur( ) /*Ajout*/
{
InitializeComponent();
joueur = new Joueur("", 1, 2, 3, 4, 5, 6);
this.DataContext = joueur;
listNud.DataContext = joueur.Numeros;
}
public AjoutJoueur( Joueur p_joueur ) /*Modification*/
{
InitializeComponent();
Joueur joueur = p_joueur;
this.DataContext = joueur;
listNud.DataContext = joueur.Numeros;
} |
le deuxième constructeur possède donc en argument le joueur que je veux modifier.
mais j'ai cette erreur sur le second constructeur
Citation:
Inconsistent accessibility: parameter type 'LottoVerification.Joueur' is less accessible than method 'LottoVerification.AjoutJoueur.AjoutJoueur(LottoVerification.Joueur)
est ce dû au fait que ma classe Joueur est en private?
Est ce qu'il y a une autre solution que de mettre tout en public?
Merci