Accéder à un attribut d'une classe.
Bonjour,
Je rencontre un petit problème en C#.
Tous d'abord j'ai une classe abstraite Personne (nom, prénom, ...). J'ai une classe Employee et Manager qui contienne toute les deux un attribut statut et qui héritent de Personne.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| abstract class Personne
{
public static int ID_EMPLOYEE = 1;
private int id;
private string lastName;
private string firstName;
.....
.....
}
class Manager:Personne
{
private string statut;
public string Statut
{
get { return statut; }
set { statut = value; }
}
......
} |
Ensuite j'ai une une fonction dans mon main qui ressemble à cela:
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
| Personne emp;
switch(args[3])
{
case "employee":
emp = new Employee(args[1], args[2]);
break;
case "manager":
default:
emp = new Manager(args[1], args[2]);
break;
}
manage.Add(emp);
public void Add(Personne emp)
{
if (emp is Employee)
emp = emp as Employee;
else if (emp is Manager)
emp = emp as Manager;
......
......
XmlAttribute role = doc.CreateAttribute("role");
XmlText roleText = doc.CreateTextNode(emp.Statut);
role.AppendChild(roleText);
......
......
} |
Hors à la compilation emp.Statut n'est pas reconnu.
Citation:
'Personne' ne contient pas une définition pour 'Statut' et aucune méthode d'extension 'Statut' acceptant un premier argument de type 'TpNote.Personne' n'a été trouvée
(une directive using ou une référence d'assembly est-elle manquante*?)