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

VB.NET Discussion :

mybase.new implicite ?


Sujet :

VB.NET

  1. #1
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut mybase.new implicite ?
    bonjour
    je voulais savoir si dans une classe hérité le mybase.new était implicite sans le public sub new
    ou s'il fallait le spécifier ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Je ne pense pas que le mybase.new soit implicite mais qu'en fait le constructeur d'une grande majorité de classes dont on peut hériter ne nécessite pas d'initialisation particuliére
    --> Le New entraîne donc simplement la création de l'instance sans rien de plus.

    Quand le mybase est nécessaire (pas de sub new sans argument), vs 2005 le dit de suite...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Class toto
        Inherits System.IO.FileStream
        Public Sub New()
            MsgBox("test")
        End Sub
    End Class
    Là le mybase.new est obligatoire car le FileStream n'a pas de constructeur sans argument (autrement dit, pas de constructeur sans initialisation de quelque chose).

    Cdt.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par olsimare
    le constructeur d'une grande majorité de classes dont on peut hériter ne nécessite pas d'initialisation particuliére

    euh là j'en suis pas sur
    selon reflector y a quand meme du code dans beaucoup de new ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Le constructeur de la classe parent est automatiquement appelé lors de la construction d'un objet.

    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
    using System;
     
    namespace ApplicationTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                Test1 a = new Test1();
                Test2 b = new Test2();
     
                Console.ReadLine();
            }
        }
     
        class Test1
        {
            public Test1()
            {
                Console.WriteLine("Test1 constructor");
            }
        }
     
        class Test2 : Test1
        {
            public Test2()
            {
                Console.WriteLine("Test2 constructor");
            }
        }
    }
    Oui je sais, c'est en C# mais le fonctionnement est identique.
    Voici le résultat produit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Test1 constructor
    Test1 constructor
    Test2 constructor
    EDIT : En supprimant le constructeur de Test2, on obtient deux fois le message Test1 constructor à l'éxecution.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ca reste un peu illisible le C# ^^ bien content de faire du vb
    enfin c'est rassurant
    mais alors pourquoi des fois VS demande qu'on le fasse explicitement ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Parce que la classe de base ne définit pas de constructeur sans argument accessible publiquement.

    PS : Tu ne vas pas me dire que le code que j'ai posté est illisible tout de même, je ne fais pas de VB.NET mais pour un programme aussi simple, ça ne doit pas changer du tout au tout, si ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    oui c'est lisible mais c'est vraiment un syntaxe de m**** pas intuitive sur le coup

    class Test2 : Test1
    est quand meme moins évident que
    class Test2
    inherits Test1

    ensuite Publis Sub New on comprends mieux que c'est l'instanciation par rapport à
    public Test2()


    et puis je préfère les begin et end que { et } qui font un paté de symboles dans une page
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par sperot51
    class Test2 : Test1
    est quand meme moins évident que
    class Test2
    inherits Test1
    +1 privilégie donc la deuxieme syntaxe ^^
    Citation Envoyé par sperot51
    ensuite Publis Sub New on comprends mieux que c'est l'instanciation par rapport à
    public Test2()
    +2 je ne savais meme pas que cette ecriture aussi ambigue existait
    Citation Envoyé par sperot51
    et puis je préfère les begin et end que { et } qui font un paté de symboles dans une page
    +3 ca c'est sur mais il faut faire avec !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Ouais bon c'est pas la peine de commencer à troller non plus les gars.
    Je disais simplement à sperot51 qu'il ne faut pas être intégriste non plus, la syntaxe C# est différente, mais la question de savoir si c'est intuitif ou pas, n'est pas importante. Tout dépend du langage avec lequel tu as commencé.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  10. #10
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par SaumonAgile
    Ouais bon c'est pas la peine de commencer à troller non plus les gars.
    On ne troll pas, j'approuve tout simplement la réaction de Sperot51 qui est la meme que la mienne.
    Citation Envoyé par SaumonAgile
    la syntaxe C# est différente, mais la question de savoir si c'est intuitif ou pas, n'est pas importante. Tout dépend du langage avec lequel tu as commencé.
    Oui c'est différent mais il est clair que je trouve le C# beaucoup moins intuitif que le vb.net mais c'est une question de gout

    Bref, c'est pas le sujet ici.

    As t-on répondu à ta question Sperot51 ? Si oui, don't forget to put the tag Thanks
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je ne troll pas non plus, je dis pas que les dev c# sont des c***
    je dis que le c et ces dérivés j'y suis allergique
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Oki. Chacun son point de vu
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. Tableau dynamique (ou new) implicite ?
    Par nosferatu dans le forum Langage
    Réponses: 6
    Dernier message: 17/04/2013, 12h55
  2. Bug new build ??
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 31/01/2003, 10h30
  3. [] Insérer DE et Datareport existant ds new projet
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/01/2003, 09h52
  4. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37
  5. [Choix] Delphi, MyBase et MyLittleBase
    Par fc dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/10/2002, 22h36

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