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

C# Discussion :

[C#] SourceGrid 2, Framework 2.0 et espace de nom


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    618
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 618
    Par défaut [C#] SourceGrid 2, Framework 2.0 et espace de nom
    Bonjour,

    Je m'initie un peu avec Visual C# Express.

    J'ai voulu compiler le composant SourceGrid initialement prévu pour le framework 1.1

    Je tombe sur une erreur que j'arrive très facilement à contourner.
    Le pb est que je ne m'explique pas le pourquoi de l'erreur (et j'aime pas, pas comprendre).

    Cette dernière est la suivante :

    SourceGrid défini dans l'espace de nom SourceGrid2 (utilisé par tous les modules qui compose le contrôle) un enum AutoSizeMode

    Manque de bol, ce nom AutoSizeMode est déjà défini dans System.Windows.Forms
    (visiblement une nouveauté du FW 2.0, même si je n'en suis pas certain)

    Il y a 8 ou 10 fois des construction du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((Rows[i].AutoSizeMode & AutoSizeMode.EnableStretch) == AutoSizeMode.EnableStretch)
    Là le compilo retourne une erreur, parce que pour lui EnableStretch ne fait pas parti de AutoSizeMode - ce qui indique qu'il fait référence à celui de System.Windows.Forms et non à celui de SourceGrid2 (ce sont des enum dans les 2 cas).

    Pourquoi ?

    Pour résoudre AutoSizeMode, le compilateur ne devrait-il pas chercher d'abord dans l'espace de nom en cours (SourceGrid2) ?

    (à noter que l'enum est bien dans le même espace de nom que la ligne provoquant l'erreur, mais pas dans le même fichier source).

    Je passe le problème en corrigeant le code de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((Rows[i].AutoSizeMode & SouceGrid2.AutoSizeMode.EnableStretch) == SouceGrid2.AutoSizeMode.EnableStretch)
    Ce que je ne comprend pas c'est pourquoi, le compilateur (ainsi que la fonction Goto Definition de l'EDI) va chercher la définition la moins locale (ou de portée la plus éloignée).

    Mon incompréhension vient certeinement de ma méconaissance du C# et que je tente de lui appliquer des principes venant d'autres langages.

    Mais avez vous l'explication sharpienne de ce comportement ?

    Merci d'avance.

    Cordialement
    Vanquish

  2. #2
    Membre éclairé

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    618
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 618
    Par défaut
    Bonsoir,

    Finalement, en expliquant mon problème, cela m'a donné des idée de recherches.

    Il se trouve que la classe dans laquelle se trouve le code incriminé, dérive indirectement de System.Windows.Forms.Panel.

    Or Panel contient un membre public nommé AutoSizeMode de type AutoSizeMode (forcement System.Windows.Forms.AutoSizeMode compte tenu du contexte).

    Donc dans ma classe, le code AutoSizeMode fait référence à son membre hérité.

    Normal qu'il fasse référence à System.Windows.Forms.AutoSizeMode et non SourceGrid2.AutoSizeMode

    Désolé de vous avoir dérangé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL] problème avec copy espace de nom
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 15h18
  2. [d6][expert WSDL] problème d'espace de nom.
    Par tchup dans le forum Web & réseau
    Réponses: 1
    Dernier message: 01/09/2005, 14h46
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13
  4. [typedef] protection à travers les espaces de noms
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 7
    Dernier message: 02/02/2005, 20h21

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