IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Visibilité de classe


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 51
    Par défaut Visibilité de classe
    Salut,

    Je débute en Objet avec C#( pourquoi pas !) et j'aimerais savoir comment rendre une classe accessible seulement dans le namespace où elle est définie ?

    Est-ce possible ?? pourquoi on ne peut pas mettre une classe private ??

    merci pour vos conseils( désolé pour ceux que je peux choquer avec mes questions)

  2. #2
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    La visibilité n'est pas définie par rapport à un namespace :

    - private : privée (pour une déclaration au sein d'une autre classe) à la classe qui la contient
    - internal : accessible au sein de l'assembly
    - public : ouverte à tous les vents

  3. #3
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par BCmDev
    La visibilité n'est pas définie par rapport à un namespace :

    - private : privée (pour une déclaration au sein d'une autre classe) à la classe qui la contient
    - internal : accessible au sein de l'assembly
    - public : ouverte à tous les vents
    +1

    il d'ailleur dommage que internal ne fase pas au sein d'un même namespace ...

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Ca se discute... Cela pourrait être un nouveau mot clef pour un nouveau concept.

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 51
    Par défaut
    donc si je comprends bien, on ne peut limiter la visibilité d'une classe dans un namespace donné.

    Je ne suis pas sûr c'est un peu vieux, mais en java(tres proche de C# !!), une classe private est visible seulement dans le package où elle est définie.

    Je trouve bizarre que ce ne soit pas possible en C# ???

  6. #6
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Non, on ne peut pas limiter la visibilité à un Namespace donné.
    En ce qui concerne le package (je ne sais pas ce que c'est, je ne me suis pas encore mis à Java mais ça va venir...), j'imagine que ce doit être proche d'un Assembly. Auquel cas, le mot clef internal te permet de déclarer ta classe comme visible uniquement au sein de ton Assemby.

  7. #7
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par BCmDev
    Non, on ne peut pas limiter la visibilité à un Namespace donné.
    En ce qui concerne le package (je ne sais pas ce que c'est, je ne me suis pas encore mis à Java mais ça va venir...), j'imagine que ce doit être proche d'un Assembly. Auquel cas, le mot clef internal te permet de déclarer ta classe comme visible uniquement au sein de ton Assemby.
    En Java le package est l'équivalent de notre namespace. Et ce n'est pas quand tu met private mais quand tu ne met rien du tout comme mot clef.

    Citation Envoyé par BCmDev
    Ca se discute... Cela pourrait être un nouveau mot clef pour un nouveau concept.
    C'est sur on peut discuter de tout

  8. #8
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Donc j'ai répondu à côté de la question, désolé !

  9. #9
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Le but du namespace, c'est de fournir au developpeur un moyen pratique d'organiser ses objet. Deux classes dans deux assembly differentes peuvent etre dans le meme namespace, exemple

Discussions similaires

  1. Visibilité des classes et de méthodes, différence?
    Par stephane543 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 12/08/2009, 17h55
  2. [débutant] Tomcat - Pb Visibilité entre classes JAVA
    Par Laurent C. dans le forum Services Web
    Réponses: 2
    Dernier message: 19/11/2008, 12h47
  3. visibilité de classes de package à package
    Par Melchisedec dans le forum Langage
    Réponses: 1
    Dernier message: 31/08/2007, 10h37
  4. question concernant la visibilité de classes
    Par thebloodyman dans le forum Langage
    Réponses: 5
    Dernier message: 11/09/2006, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo