Cast C#

Signaler
Messages postés
6
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
14 mars 2011
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour !

Question simple, pour personnes averties:

J'ai une classe :

        public class ListOfTopicsView
        {
            public List<Topic> ListOfTopics { get; set; }
        }


Et je souhaite réaliser le transtypage suivante :
            List<Topic> ListOfTopicsToEdit = (List<Topic>)ListOfTopics;


Voyez vous ce qui cloche?

Je vous remercie ! : )

2 réponses

Messages postés
6
Date d'inscription
dimanche 21 janvier 2007
Statut
Membre
Dernière intervention
14 mars 2011

Bonjour !

Question simple, pour personnes averties:

J'ai une classe :

Code C# :

        public class ListOfTopicsView
        {
            public List<Topic> ListOfTopics { get; set; }
        }




Et je souhaite réaliser le transtypage suivante :
Code C# :

public ActionResult EditTopic(ListOfTopicsView ListOfTopics, int id)
        {
            List<Topic> ListOfTopicsToEdit = (List<Topic>)ListOfTopics;
[...]
}




Voyez vous ce qui cloche?

Je vous remercie ! : )
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
18
Bonjour,

Tu ne peux pas "caster" la classe "ListOfTopicsView" en "List<Topic" car elle ne dérive pas de "List<Topic>".
Elle contient bien une propriété de type "List<Topic>" mais il ne s'agit pas d'une classe fille de ce type (d'où le cast impossible).

Pour ce faire, il te faut donc que ta classe dérive de List<Topic>:
public class ListOfTopicsView : List<Topic>
{
  //...
}


Dans ce cas, tu n'auras pas besoin de propriété "ListOfTopics" car la liste sera elle-même:
Topic topic = this[i];
this.Add(Topic item);
//...


Bon après midi,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------