Bonjour tout le monde.
Je me fais une petite mise à jour sur la POO, et il y a un truc que je ne comprends pas :
J'ai une première classe ainsi définie :
Et une class (programme de test) ainsi ecrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 namespace Exemple { /// <summary> /// Classe visible par n'importe quel autre programme d'un autre namespace /// </summary> class csExemple01 { /// <summary> /// Classe visible par n'importe quel autre programme d'un autre namespace /// </summary> public class csPublic { public void Methode() { } } /// <summary> /// Classe visible uniquement par les autres classes du même assembly /// </summary> internal class csInternal { public void Methode() { } } /// <summary> /// Une classe abstraite ne peut pas être instanciée /// </summary> abstract class csAbstract { public void Methode() { } } /// <summary> /// Classe visible uniquement par toutes les autres classes héritant de la classe /// conteneur /// </summary> protected class csProtected { public void Methode() { } } /// <summary> /// Classe visible uniquement par les autres classes du même assembly /// ou elle esr définie /// </summary> private class csPrivate { public void Methode() { } } /// <summary> /// Classe qualifiée d'internal (private si interne) /// </summary> class csDefault { public void Methode() { } } } }
Quelqu'un pourrait-il me dire pourquoi la ligne suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 using Exemple; namespace POO { class Program { static void Main(string[] args) { csExemple01.csPublic objectPublic = new csExemple01.csPublic(); csExemple01.csInternal objetInternal = new csExemple01.csInternal(); objetInternal.Methode(); } } }Normalement, ne devrait-elle pas uniquement être visible par les autres classes du même assembly ?csExemple01.csInternal objetInternal = new csExemple01.csInternal();
Partager