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

Windows Forms Discussion :

[C#] quelques questions sur la syntaxe de base en C#


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut [C#] quelques questions sur la syntaxe de base en C#
    Bonjour

    1 - je voudrais savoir comment on fait pour accéder au
    [constructeur de la classe de base]
    depuis [le construteur de la classe dérivée]

    en VB.NET, on utilise MyBase.new mais comment fait t'on en C# ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub New()
    
    MyBase.new()
    
     
    End Sub
    2 - est il possible de declarer des propriétes (accesseurs) writeonly en C# ?

    3 - est il possible en C# de declarer des attributs et propriétés partagées ? (déclarée avec mot-clé shared en VB.NET)

    salut,merci
    ++

  2. #2
    Membre averti
    Avatar de sam_XIII
    Profil pro
    Inscrit en
    Août 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 221
    Points : 353
    Points
    353
    Par défaut
    pour appeler le constructeur de la classe mere tu fais

    et pour une propriete en "writeonly" ca devrai aller en ne mettant que le setter

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public string mapropriete
    {
    set{maVariable=value;}
    }

  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
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par sam_XIII
    pour appeler le constructeur de la classe mere tu fais

    non ça n'existe pas (ou je l'ai pas vu) .

    La bonne syntaxe :

    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
     
     
    public class A
    {
        public A(string t)
        {
     
        }
    }
     
    public class B : A
    {
        public B() : A("dedede")
        {
     
        }
    }
    sinon pour le wirteOnly, c'est ok, il suffit de ne mettre que le setter.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Je suis d'accord avec Dev01 pour l'appel du constructeur de la calsse mère, mais le mot clef "base" te permet d'acceder à la classe mère (== super en Java).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    ok merci

    mais jai l'impression que l'appel au constructeur n'est pas bon en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    base.constructeur();
    on peut bien accéder aux membres et méthodes de la classe de base grace a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    base.attribut=valeur;
    base.methode();
    mais on ne peut pas accéder au constructeur ,mince.

    et pour les attributs et property est il possible de les declarer partagés ?
    (utilisation de shared)

    de plus est il possible de passer un parametre aux property en C# comme on peut le faire en VB.NET , ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
    Public Property DefaultQuantity(ByVal Multiplier As Integer) As Integer
            Get
                Return custDefaultQuantity * Multiplier
            End Get
     
            Set(ByVal Value As Integer)
                custDefaultQuantity = Value
            End Set
        End Property

    mercii ++

  6. #6
    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
    Points : 6 017
    Points
    6 017
    Par défaut
    Non en C# tu ne peux pas parametrer une propriété autre que this (enumerateur par défaut).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    public int this[int i]
    {
       get
       {
          return i;
        }
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    pfff c grave j'ai l'impression qu'on est en faite plus limité au niveau du code en C# qu'en VB, un comble
    en plus j'ai remarqué que l'on est beaucoup moins aidé (notamment au niveau de l'intellisense )
    ou par exemple en VB lorsque lon declare une classe implementant une interface ,le corps des methodes a implementer est automatiquement généré (il ne reste plus qu'a ajouter le code ds le corps)

    c'est bete parce que je trouve que plus on est aidé dans le code et plus on va vite, d'ailleurs Microsoft l'a bien compris la preuve avec visual studio 2005

  8. #8
    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
    Points : 6 017
    Points
    6 017
    Par défaut
    Ces commentaires n'engagent que toi.

    je vais pas tomber dans le troll VB VS C#, il est démodé ...

    Mais pour ce qui est de l'aide, VS 2005 te génére aussi les fonctions et autres à implémenter quant tu étend une interface en C#.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Pour en revenir a ta question de départ l'appel du constructeur se fait comme l'a indiqué Dev01. Ensuite je ne connais pas le mot clef shared, je ne sais pas a quoi il sert, mais si tu déclares tes propriété en protected, elles ne seront accéssible que depuis la classe mère et les clase filles.
    Je sais pas si ca peut t'aider.

  10. #10
    Membre averti
    Avatar de sam_XIII
    Profil pro
    Inscrit en
    Août 2003
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 221
    Points : 353
    Points
    353
    Par défaut
    Citation Envoyé par DonJR
    ok merci

    mais jai l'impression que l'appel au constructeur n'est pas bon en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    base.constructeur();
    on peut bien accéder aux membres et méthodes de la classe de base grace a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    base.attribut=valeur;
    base.methode();
    mais on ne peut pas accéder au constructeur ,mince.
    desole de t'avoir indui en erreur
    j'avais jamais teste pour le constructeur, j'ai juste pense que ca marcherai vu que ca marche pour les methodes ...

    enfin on en apprend tous les jours

  11. #11
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    je ne sais pas exactement ce que fais shared mais si tu veux partager un membre d'une classe avec toutes les instances, autant utiliser une variable static.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    oui tout a fait mehdi_tn c static le mot cle a employer avec C# ,
    autrement sam_XIII c'est pas grave au contraire au moins des quon discute on a moyen d'avancer que si on ne dit rien
    mercii
    ++

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Points : 96
    Points
    96
    Par défaut
    Bien en passant sur le site j'en profite pour mettre a jour ce topic (comme je sais desormais comment faire pour appeler le constructeur de la classe de base depuis le constructeur d'une classe derivee)

    exemple (a savoir egalement ici on appelle le constructeur par défaut de la classe de base c'est a dire qu'il n'a pas de parametres, mais on peut egalement passer des parametres afin d'appeler un constructeur de classe base en ayant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    class ClasseDerivee : ClasseBase
        {
    
            public ClasseDerivee():base()
            {
                
            }
        }
    merci moi lol
    ++

  14. #14
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Je me souviens bien de cette page qui compare les principaux syntaxes des deux langages.
    Pour moi, connaitre un des deux(VB Net ou C#), revient à dire connaitre les deux.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Justement excusez ma question si elle n'est pas au bon endroit ou un peu idiote mais le C# c'est quoi ? C'est un dérivé du C++ et de VB.NET ? D'ailleurs si niveau syntaxe VB.NET et C# ont l'air de différer si on les compare souvent c'est qu'ils ont les même débouchés ? Ca ressemble aussi a du java ! C'est fou ce que les langages se ressemblent et a force on ne sait pas lequel choisir ! Moi qui débute en programation, je savais pas par lequel commencer ! Ma formation ma enseigné le VB et le java mais c'est fou comme j'ai du mal avec la POO. C# est orienté objet aussi je suppose ! Dernière question, il est open source aussi ? Donc multi plateforme ? Merci de vos éclaircissements et désolé si j'ai dérivé !

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 21/10/2005, 20h24
  2. Réponses: 10
    Dernier message: 24/02/2005, 15h57
  3. Quelques questions sur la mémoire
    Par Gruik dans le forum C
    Réponses: 6
    Dernier message: 17/11/2004, 15h38
  4. Quelques question sur Win 32 Appli
    Par lvdnono dans le forum Windows
    Réponses: 5
    Dernier message: 15/06/2004, 13h37
  5. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 22h23

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