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 :

Methode generique et pointeurs en c# [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut Methode generique et pointeurs en c#
    Bonjour a tous,
    je suis debutant en c# et je souhaiterai implementer une methode generique utilisant des pointeurs, il semblerait qu' il soit possible de le fairte en c++ a l aide des templates cependant en c# j ai une erreur du type "Cannot take the address of, get the size of, or declare a pointer to a managed type ('T')", ma fonction est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unsafe public static void computation<T>( T[] nb){
        T* r;
    }
    En esperant avoir ete assez clair je vous remercie

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour, c'est tout simplement impossible en C#. La raison en est que le ramasse-miettes peut à tout moment déplacer l'objet. Dès lors les pointeurs ne peuvent exister que pour deux types d'objets : les objets allouées sur la pile (types valeurs) et les tableaux épinglés (via "fixed"). Dans les deux cas l'opération est limitée à la fonction actuelle et aux appels qu'elle réalise, de façon à éviter une corruption de la pile par un appel extérieur au bloc unsafe. C'est aussi pourquoi il n'est pas possible de stocker de champ pointeur dans une classe.

  3. #3
    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
    On ne peut pas faire un pointeur sur un type référence (classe), seulement sur un type valeur (structure).

    Quel est le but au final ? Qu'est-ce qui te fait croire que tu as besoin de pointeurs ? En 12 ans de développement C#, je ne crois pas en avoir eu besoin plus de 2 ou 3 fois...

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Bonjour,
    Tout d'abord merci beaucoup pour vos reponses, en fait pour mon projet je souhaitais simuler des instructions assembleurs ARM, ainsi que tous les registres et donc j ai besoin de manipuler les adresses de ces registres pour pouvoir faire des operations arithmetiques, ADD,soustraction, etc..

    Il me semblait donc necessaire d'utiliser des pointeurs, afin de simuler le comportement de ces registres.

  5. #5
    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
    Je ne pense pas que ce soit nécessaire, mais c'est toi qui vois...

    En tous cas, il n'est pas possible d'utiliser des pointeurs sur un paramètre de type générique, même avec la contrainte struct sur le type.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    ok merci, je vais faire autrement

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

Discussions similaires

  1. Utilisation de methodes depuis un pointeur d'objet
    Par Pharmacon dans le forum Langage
    Réponses: 1
    Dernier message: 24/12/2014, 13h52
  2. java 6 et methodes generiques
    Par snetechen dans le forum Langage
    Réponses: 5
    Dernier message: 06/10/2009, 09h01
  3. Réponses: 6
    Dernier message: 15/07/2009, 14h00
  4. Methode generique dasn une autre couche
    Par topolino dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/08/2008, 11h50
  5. Appel generique de pointeur de fonction qui...
    Par MonsieurAk dans le forum C
    Réponses: 7
    Dernier message: 07/03/2006, 22h05

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