Question sur la visibilité des classes [Résolu]

Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
- 24 juin 2005 à 16:02 - Dernière réponse :
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
- 24 juin 2005 à 17:15
Bonjour,

Je suis en train de développer quelques classes pour un projet perso.



J'ai dans un même Namespace une dizaine de classes (toutes publiques).
Mais j'ai une classe "Tools" qui contient quelques méthodes de classe
qui m'aident dans la réalisation des autres classes de ce namespace
mais qui sont inutiles pour la personne qui va se servir mes classes.



Je voulais savoir s'il est possible de rendre cette classe "Tools" uniquement visible par les classes de ce namespace.



Par exemple si Class1 se trouve dans ce namespace, lors de l'écriture d'une méthode de cette classe, je peux faire :

Tools.meth01()



Mais si quelqu'un se sert de mes classes en ayant fait :

using myClasses;



il ne puisse pas se servir de la classe "Tools".



Merci d'avance.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
24 juin 2005 à 16:06
3
Merci
Il suffit de mettre internal à la place de public pour la visibilité.

Amicalement, SharpMao

Merci SharpMao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de SharpMao
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
24 juin 2005 à 16:16
0
Merci
T'es trop rapide SharpMao : )

Vi, l'attribut internal limite la visibilite à l'assembly en cours, c'est a dire que si tu compiles ton code en DLL ta classe Tool ne pourra pas etre utilisée, par contre si ton code est compilé dans le meme EXE que le client alors là ta classe est utilisable.
Commenter la réponse de Lutinore
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
24 juin 2005 à 16:31
0
Merci
merci beaucoup, j'ai une autre petite question dans la foulée :



J'utilise le mot clef public devant mes classes par exemple :

public class Machin

{

[...]

}



Qu'est ce que cela fait si je le change par private ou protected?



Parce qu'avec les variables d'instance, je sais très bien :

public : l'utilisateur, la classe en cours et les classes héritées la voit

protected : la classe en cours et les classes héritées la voit

private : seul la classe en cours la voit



Mais appliquer ça sur les classes, je trouve ça bizarre, à part public qui a un sens pour moi!
Commenter la réponse de Chris_LaFouine
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
24 juin 2005 à 16:40
0
Merci
On peut mettre une ou plusieures classes dans une classe :

public class Class1
{
private class Class2
{
...
}

//Reste de Class1, qui peut utiliser Class2
}

Avec ceci, Class2 peut être utilisée par Class1, mais par aucune autre classe.

Amicalement, SharpMao
Commenter la réponse de SharpMao
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
24 juin 2005 à 16:49
0
Merci
Vraiment trop rapide ce chat..

Je précise que seule les classes internes peuvent avoir l'attribut private ou protected, pas la classe la plus à l'exterieur, pour celle ci ne rien mettre revient à mettre internal.
Commenter la réponse de Lutinore
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
24 juin 2005 à 16:58
0
Merci
En efet Lutinore,

internal est la visiblilté par défaut d'une classe la plus à l'extérieure, ce qui signifie qu'on peut omettre de mettre le mot clé internal.

Amicalement, SharpMao
Commenter la réponse de SharpMao
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
24 juin 2005 à 16:59
0
Merci
Si jamais, pour plus de renseignements dur la visibilité :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfdeclaredaccessibilitypg.asp

Amicalement, SharpMao
Commenter la réponse de SharpMao
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Dernière intervention
4 juin 2008
24 juin 2005 à 17:15
0
Merci
Merci tout le monde!!
Commenter la réponse de Chris_LaFouine

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.