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 :

[2.0] Convertir un type utilisateur en un autre type


Sujet :

C#

  1. #1
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut [2.0] Convertir un type utilisateur en un autre type
    Ca m'étonnerais que cela soit faisable, mais sait-on jamais....

    Voici ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public sealed class SubClassA : BaseClass
    {
      [...]
     
      public override void foo(...){
        [...]
      }
     
      [...]
    }
    J'ai également deux autres types de SubClass : SubClassB et SubClassC, disons.

    La fonction foo(...) effectue certaines opérations qui peuvent mener à une tranformation du type de l'instance des classes SubClassA,B ou C en un autre type parmi SubClassA,B ou C.

    Pour expliquer ça plus concrètement, disons que, par exemple :
    - BaseClass est une classe décrivant un être humain.
    - SubClassA représente un être humain de sexe masculin
    - SubClassB représente un être humain de sexe féminin
    - foo(...) c'est un chirurgien spécialisé dans le changement de sexe.


    Y'a pas moyen en C#, je suppose, de modifier le type d'un objet depuis son propre contexte ?
    Et si c'est malgré tout possible, c'est pas trop affreux côté performances ?


    L'autre solution que je vois, c'est de changer de stratégie pour mon petit bidule (c'est pas très important, je fais ça pour m'amuser).
    En gros, il s'agit un petit interprêteur de lambda-calcul pur, et j'aimerais éviter d'avoir à faire des new partout.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Non, c'est pas possible qu'un type change de type.

    Une idée serait que foo renvoie un objet de type BaseClass qui serait soit un SubClassA, soit un SubClassB (suite à un new que tu feras dans la fonction foo).
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  3. #3
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Et c'est précisément ce que j'aimerais éviter.

Discussions similaires

  1. Réponses: 12
    Dernier message: 13/09/2013, 11h06
  2. caster type Object en un autre type
    Par CaptainCyd dans le forum Langage
    Réponses: 4
    Dernier message: 18/09/2007, 15h47
  3. Objet d'un type initialisé avec un autre type.
    Par Pragmateek dans le forum C++
    Réponses: 28
    Dernier message: 30/03/2006, 21h06
  4. type utilisateur modifier
    Par shadow31 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 15/11/2005, 15h58
  5. [MSDE] CREATE RULE sur un type utilisateur ?
    Par Raduris dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/01/2005, 13h24

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