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 :

Déclaration de variable


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Déclaration de variable
    Bonjour, j'ai fait des recherches sur google et je n'ai pas trouvé ma réponse, donc je vais prendre une chance et la demander ici.

    Quand je déclare mes variables je fais : Dim NomVariable as integer

    J'ai eu aucun problème jusqu'a temps que j'utilise une variable de type random:

    Dim NomVariable as random

    J'utilise après NomVariable.next pour générer un autre nombre. Mon problème est que je devais mettre dim NomVariable as new random

    Pourquoi je dois utiliser le mot new pour déclarer la variable, quel est la différence avec une déclaration de type integer?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    grande question existentielle

    En .NET, il y a 2 grandes catégories de types :
    • Les types valeur : les types primitifs tels que Integer, Double ou Boolean, les Enum, les DateTime, et d'une manière générale tous les types déclarés comme "Structure". Les objets de type valeur contiennent leurs propres données, et sont manipulés par valeur, c'est à dire qu'ils sont copiés à chaque fois qu'on les affecte à une variable, qu'on les passe en paramètre d'une méthode, ou qu'on les renvoie en résultat d'une méthode. Les types valeurs ne peuvent pas valoir Nothing. En VB.NET ils sont implicitement initialisés à leur valeur par défaut, si bien qu'il n'y a pas besoin de les instancier explicitement avec New
    • Les types référence : tous les autres types : String, Object, Random... bref, tous les types déclarés comme Class. Ces objets sont manipulés par référence : cela signifie qu'une variable de type référence ne contient pas directement les données, mais seulement une référence vers l'emplacement des données. On ne manipule pas directement l'objet mais seulement une référence vers l'objet. Si tu as déjà fait du C, tu peux voir ça comme un pointeur (ce n'est pas tout à fait pareil mais c'est une analogie qui aide à comprendre ce que c'est). Si tu copies une variable de type référence vers une autre, tu ne copies pas l'objet lui-même : tu copies seulement la référence. Par défaut, une variable de type référence vaut Nothing, ce qui signifie qu'elle ne pointe vers aucun objet. Tu ne peux donc pas l'utiliser avant de lui avoir affecté une instance d'objet.


    Une autre explication, sur le site de MSDN :
    http://msdn.microsoft.com/fr-fr/library/t63sy5hs.aspx

    Dans ton cas, tu déclares une variable qui est une référence vers un objet Random, mais tu n'as pas précisé de quel objet il s'agissait, donc par défaut la variable vaut Nothing. Il faut lui affecter un objet (New Random dans ton cas) pour pouvoir l'utiliser.

    Attention aussi à ne pas confondre la notion de type valeur/type référence avec la notion de passage de paramètres par valeur (ByVal) ou par référence (ByRef). Il y a une explication très complète ici :
    http://www.developpez.net/forums/d29...f/#post1867839

Discussions similaires

  1. déclaration de variable public
    Par mathieu57 dans le forum MFC
    Réponses: 5
    Dernier message: 15/09/2005, 17h36
  2. [DB2] Ordre de déclaration des variables
    Par Fatah93 dans le forum DB2
    Réponses: 1
    Dernier message: 04/05/2005, 17h18
  3. déclaration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    Réponses: 10
    Dernier message: 30/12/2004, 22h33
  4. [FLASH MX2004] Déclaration de variables sous flash mx
    Par softyClochette dans le forum Flash
    Réponses: 4
    Dernier message: 29/11/2004, 16h11
  5. [debutant][Portée] Déclaration de variable .....
    Par Slein dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 10h43

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