Cast C#

artichomaske Messages postés 6 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 14 mars 2011 - 14 mars 2011 à 11:17
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 14 mars 2011 à 13:57
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

artichomaske Messages postés 6 Date d'inscription dimanche 21 janvier 2007 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 11:22
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 ! : )
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
14 mars 2011 à 13:57
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
---------------------
0
Rejoignez-nous