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 :

Pointeur en C#


Sujet :

C#

  1. #1
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut Pointeur en C#
    bonjour,
    je vais coder des pointeurs en C#, voici mon code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace sql_transac_csharp
    {
        public class pointeurcsharp
     
       {
     
     
                public void lenoeud
                {   
                    struct noeud
                                {
                                int info;
                                noeud *suivant;
                                }
     
                  }
                public void pointeur{
                                   int* i; // pointeur sur un entier
                                    //i = new int ;
                                        //      ou
                                    int *i = new int ;
                }
     
     
     
                  public void  instance{
                                    noeud *p;
                                    p = new noeud;
                                }
     
                  public void traite{
                                    noeud *p ;
                                    (*p).info ;
                    }
     
    }
    le code me retourne de erreurs : struct , void , int , noeud.

    j'aimerais faire une liste chainée avec un chainon je le fait en java.


    see ya_
    philo

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Euuuh? Pourquoi?
    Sauf très très rares cas de figure, on n'utilise pas de pointeurs en C#!

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Par défaut
    Bonjour,

    Une structure est un objet de type valeur, c'est a dire qu'il sera recopier par le framework chaque fois qu'il sera passer en argument, ou retourner par une methode.

    Une class est un objet de type référence, du coup l'objet n'est pas recopier, c'est son adresse qui est utiliser.

    Une class correspond parfaitement a ton besoin, pas besoin de retourner au pointeur tel qu'on les utilise en C/C++.

    Si malgres tous, tu veux persister dans cette voix, alors regarde du coté des mots clés "unsafe", et "fixed".

    PS: je doute qu'en java tu utilise des pointeur

    PS2: pour une liste chainé, tu as déjà une collection dans le framework, "LinkedList<T>"

  4. #4
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut
    le code suivant semble plus adapté :
    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
    32
    33
    34
    35
    36
    37
    38
    39
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace sql_transac_csharp
    {
        public class pointeurcsharp
     
       {     public       int* i;
     
             public struct noeud
                                {
                                int *info;
                                char *champs;
                                noeud *suivant;
                                }
     
     
                public void pointeur{
                                   //int* i; // pointeur sur un entier
                                    //i = new int ;
                                        //      ou
                                    int *i = new int ;
                }
     
     
     
                  public static void instance{
                                    noeud *p;
                                    p = new noeud;
                                }
     
                  public void traite{
                                    noeud *p ;
                                    (*p).info ;
                    }
     
    }
    j'ai des erreurs aux niveaux des noeuds, il ne reconnait pas la structure depuis une méthode de la meme classe public??


    A+
    philo

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Encore une fois, je le répète c'est une erreur d'utiliser des pointeurs.
    Comment souhaites tu gérer le garbage collecting après? Si tu ne sais pas répondre à cette question c'est que tu ne dois pas utiliser de pointeurs.

    Edit: J'avais même pas vu, mais ton code ne pourra jamais marcher. Ca n'est même pas du C#. Il n'y a par exemple pas de parenthese pour definir les paramètres d'une méthode.

    Honetement, arrête d'essayer de faire ce que tu fais et prends un cours de C# depuis le début.

  6. #6
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Je plussoie. Les pointeurs, à eviter (en C#). D'autant que c'est le seul type qui est différent en 32 et 64 bits.

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    Amusant, lorsque j'ai commencé c# je voulais aussi utiliser des pointeurs pour etre "ultra rapide", erreur fatale!

    En c# on travaille 99% du temps avec des références, donc pointeurs de façon implicite.

    C'est pour moi l'un des principaux avantages par rapport à du C ou C++.

    Seul hic, comme c'est du managé, on n'a pas la main directe sur la destruction des objets.

    Le seul cas où l'on travaille avec des pointeurs, est si l'on utilise des librairies (qui par exemple sont en C) et dont les methodes utilisent des pointeurs. Pour cette partie, regarde P/Invoke IntPtr

  8. #8
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Et Oui

    giova_fr a parfaitement résumé le contexte d'intention et son inutilité
    Oublie les pointeurs tu est en C# pas en C ni C++

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    bonjour,

    Citation Envoyé par philo71 Voir le message
    je vais coder des pointeurs en C#,
    Mauvaise idée, a priori.

    j'aimerais faire une liste chainée avec un chainon je le fait en java.
    Mauvaise idée, ça existe déjà : classe générique LinkedList

    http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx

  10. #10
    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 : 43
    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
    Par défaut
    Vu le nombre d'erreurs de syntaxe dans ton code, je te suggère de faire un petit tour ici...
    http://tahe.developpez.com/dotnet/csharp/

Discussions similaires

  1. pointeurs
    Par ghost74 dans le forum C
    Réponses: 3
    Dernier message: 14/12/2002, 02h52
  2. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43
  3. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  4. djgpp et pointeurs far -2
    Par elvivo dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 29/07/2002, 22h43
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

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