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 :

Impossible de déclarer un readonly dans main()


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut Impossible de déclarer un readonly dans main()
    Bonjour,

    Comme le titre l'indique, lorsque je déclare une donnée readonly au sein de la méthode main(), alors l'erreur suivat s'affiche:
    Le modificateur 'readonly' n'est pas valide pour cet élément.

    J'ai besoin de votre aide, surtout je suis débutatnt en C# !

    Et merci d'avance.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Montre nous ton code

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Par exemple, ce simple code donne cet erreur:
    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
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace Divers
    {
        class Program
        {
            static void Main(string[] args)
            {
                readonly float x=0.60f;
            }
     
        }
    }

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Bonjour,

    Utilise le mot clé const à la place de readonly

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Oui, je sais que l'opérateur const ça marche ! mais si on veut initialiser cette donnée aprés, on ne peut pas le faire ! car const oblige d'affecter une valeur lors de sa déclaration, par contre readonly permet cette possiblité.

    Mais tous ça n'est pas mon but de cette question, parce que je suis en apprentissage de C# et je veux comprendre "porquoi" cet erreur.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Le mot clé readonly est utilisable uniquement sur les champs, et pas sur les variables.

    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
     
     
    public class Program {
     
       public static readonly int x;
     
       static Program {
          x = 3;
       }
     
       public static void Main(string[] args) {
          <...>
       }
     
    }

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par insane_80 Voir le message
    Oui, je sais que l'opérateur const ça marche ! mais si on veut initialiser cette donnée aprés, on ne peut pas le faire ! car const oblige d'affecter une valeur lors de sa déclaration, par contre readonly permet cette possiblité.
    Je rappelle que readonly te permet juste de modifier le champs dans le constructeur et nulle par ailleurs.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Points : 110
    Points
    110
    Par défaut
    Merci beaucoup,

    Maintenant j'ai compris que:

    1- Le mot clé readonly est un modificateur que on peut utiliser sur des champs

    2-Une donnée readonly peut être initialisée au plus tard par le constructeur de la classe

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

Discussions similaires

  1. Impossible de renommer une table dans FireBird
    Par WebPac dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/05/2006, 12h12
  2. [VB.NET] Impossible de supp fichier affiché dans PICTUREBOX
    Par stephane93fr dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/06/2005, 17h46
  3. Impossible d'inscrire un ocx dans la base de registre
    Par tomtom7 dans le forum Windows XP
    Réponses: 4
    Dernier message: 31/01/2005, 09h29
  4. Comment déclarer une DataSource dans server.xml
    Par guillaume06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/06/2004, 14h27
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

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