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
|
class Person
{
List<Materiel> Materiels = new List<Materiel>();
string Name { get; set; }
public Person(string name)
{
Name = name;
}
public void UseMateriel(Materiel m)
{
if (!Materiels.Contains(m))
{
Materiels.Add(m);
m.UsedByPerson(this);
}
}
public void Show()
{
Show(0);
}
public void Show(int level)
{
if (level < 3)
{
Console.WriteLine("{0}Person : {1}", new String('\t', level), Name);
foreach (Materiel m in Materiels)
{
m.Show(level + 1);
}
}
}
}
class Materiel
{
List<Person> Persons = new List<Person>();
string Name { get; set; }
public Materiel(string name)
{
Name = name;
}
public void UsedByPerson(Person p)
{
if (!Persons.Contains(p))
{
Persons.Add(p);
p.UseMateriel(this);
}
}
public void Show()
{
Show(0);
}
public void Show(int level)
{
if (level < 3)
{
Console.WriteLine("{0}Materiel : {1}", new String('\t', level), Name);
foreach (Person p in Persons)
{
p.Show(level + 1);
}
}
}
}
// Le programme
Person p1 = new Person("Toto");
Person p2 = new Person("Titi");
Materiel m1 = new Materiel("Voiture 1");
Materiel m2 = new Materiel("Voiture 2");
p1.UseMateriel(m1);
p2.UseMateriel(m1);
p2.UseMateriel(m2);
p1.Show();
p2.Show(); |