déclaration d'un objet en C#
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

déclaration d'un objet en C#



  1. #1
    zaskzask

    déclaration d'un objet en C#


    ------

    Bonjour ,

    Je ne comprends pas trop pourquoi quand instancie un objet en C# on met deux fois le nom de la classe. Quelle est la logique la derrière?
    Par exemple :
    Voiture voitureNicolas = new Voiture();

    Pourquoi mettre deux fois le nom de la classe voiture?

    Merci pour votre aide

    -----

  2. #2
    Dlzlogic

    Re : déclaration d'un objet en C#

    Bonjour,
    Vous avez créé une classe qui s'appelle Voiture. Cette classe peut être comparée à un nouveau type.
    Plus loin, dans le programme, vous voulez utiliser cette classe. Donc, vous déclarez un objet nommé voitureNicolas, donc vous dites qu'il est du type Voiture.
    Ensuite, vous voulez créer cet objet. C'est autre-chose qu'une simple déclaration. Vous utilisez pour cela le mot-clé new. Ce mot clé va chercher le constructeur de Voiture.
    Il n'y a rien de mystérieux dans tout cela, vous faites une déclaration et une initialisation sur la même ligne.

  3. #3
    Spazi

    Re : déclaration d'un objet en C#

    Bonjour,

    "Voiture voitureNicolas" sert à indiquer que voitureNicolas est de type Voiture pour la suite du programme.
    " = new Voiture()" sert à dire que vous mettez dans cette variable une instance de type Voiture.

    Si, dans votre cas, vous l'écrivez 2 fois, c'est parce que vous voulez utiliser votre variable avec le même type que ce que vous mettez dedans (ce qui est le cas 99% du temps), mais ce n'est pas une obligation, avec l'héritage.

    Ex:

    Code:
    public class A { }
    public class B : A { }
    
    [...]
    
    A jesuisunA = new B();

    Néanmoins, pour votre cas, C# a introduit un mot-clé "var" lorsque votre variable est du même type que ce avec quoi vous l'initialisez. Votre variable sera du type de ce qu'il y a après le "="

    Code:
    var voitureNicolas = new Voiture();
    Dans votre IDE, si vous passez votre souris sur le var, vous devriez voir une indication que votre variable est bien de type Voiture.


    Cordialement.

  4. #4
    Bluedeep

    Re : déclaration d'un objet en C#

    Citation Envoyé par zaskzask Voir le message

    Code:
    Voiture voitureNicolas = new Voiture();
    Pourquoi mettre deux fois le nom de la classe voiture?
    Pas nécessaire

    Code:
    var voitureNicolas  = new Voiture();
    Ici le typage est inféré à la compilation : il n'est pas utile de typer explicitement la variable.

    EDIT : je n'avais pas vu que la réponse avait déjà été donnée (et de manière plus complète).
    Dernière modification par Bluedeep ; 07/09/2016 à 09h32.

  5. A voir en vidéo sur Futura
  6. #5
    futurscience

    Re : déclaration d'un objet en C#

    Bonjour,

    C'est dû au langage lui-même.
    En Visual Basic par exemple, tu peux écrire ceci:

    Code:
    Dim voitureNicolas As New Voiture()
    C'est parce qu'en Visual Basic, il y a un mot-clé pour déclaré une variable (Dim) et un mot clé pour décrire le type de donnée à déclarer (As). Du coup, la Visual Basic Team a trouvé judicieux de rendre l'instruction à la fois déclarative, et exécutable (un peu comme avec Redim en VBA/VB6 qui permettait aussi les 2 (déclaration + exécution) en une seule instruction) en permettant d'ajouter directement le mot-clé New directement au niveau du type de donné à déclarer pour rendre l'instruction exécutable.

    En langage C#, il n'y a(vait) pas de mot pour dire au compilo de déclarer une variable, c'est (ou c'était) implicite.
    L'inférence de type qui a été ajouté (dit plus haut dans les commentaires).
    Du coup, le mot-clé (car c'est bel et bien un mot-clé et non un Type comme on pourrait le penser) var permet de remplacer le mot-clé Dim du Visual Basic dans le cas de l'inférence locale de type.

    C#
    Code:
    var voitureNicolas = New Voiture()
    VB
    Code:
    Dim voitureNicolas As New Voiture()
    ' ou par inférence locale de type:
    Dim voitureNicolas = New Voiture()
    En Visual Basic, on peut faire pire qu'en C# (plus long à écrire à cause de Dim et As)
    VB
    Code:
    Dim voitureNicolas As Voiture = New Voiture()
    Dernière modification par futurscience ; 08/09/2016 à 19h08.

  7. #6
    Bluedeep

    Re : déclaration d'un objet en C#

    Bonjour,

    Citation Envoyé par futurscience Voir le message

    C'est dû au langage lui-même.
    En Visual Basic par exemple, tu peux écrire ceci:

    Code:
    Dim voitureNicolas As New Voiture()
    C'est parce qu'en Visual Basic, il y a un mot-clé pour déclaré une variable (Dim) et un mot clé pour décrire le type de donnée à déclarer (As). Du coup, la Visual Basic Team a trouvé judicieux de rendre l'instruction à la fois déclarative, et exécutable (un peu comme avec Redim en VBA/VB6 qui permettait aussi les 2 (déclaration + exécution) en une seule instruction) en permettant d'ajouter directement le mot-clé New directement au niveau du type de donné à déclarer pour rendre l'instruction exécutable.
    Bravo, vous avez trouvé LE cas où VB.Net est moins verbeux que C#

Discussions similaires

  1. Abaqus, appliquer un effort sur un objet, entrainant un objet, qui en entraine lui-même un 3eme.
    Par Benji23245 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 04/07/2016, 10h22
  2. Transfert de matière organique d' objet en objet.
    Par Thomas1234 dans le forum Santé et médecine générale
    Réponses: 17
    Dernier message: 03/09/2013, 21h48
  3. Optique - Objet dans le plan focal objet...
    Par invite23f07960 dans le forum Physique
    Réponses: 4
    Dernier message: 04/03/2011, 19h05
  4. lumière reçue par un objet et couleur de objet
    Par mor dans le forum Physique
    Réponses: 1
    Dernier message: 03/12/2010, 07h39
  5. Rotation d'un objet dans un repère autour d'un axe de cet objet
    Par invite8001d615 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 03/05/2009, 14h21