Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Matthieu MEZIL

I love .Net

Abonnements

Actualités

Locations of visitors to this page English blog
Locations of visitors to this blog
Un bug dans Reflector avec les generics

Pour le code suivant :

class A<T>

{

    public A()

    {

        var b = new B();

    }

    class B : A<T>

    {

    }

}

Reflector génère :

class A<T>

{

    public A()

    {

        var b = new B<T>();

    }

    class B : A<T>

    {

    }

}

ce qui ne compile pas.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Publié mercredi 4 juin 2008 08:02 par Matthieu MEZIL

Classé sous : , ,

Commentaires

# re: Un bug dans Reflector avec les generics @ mercredi 4 juin 2008 17:42

Je pense que le bug est juste dans l'affichage en C#. Le code IL est bon, c'est d'ailleurs le même que celui que génère ILDAsm.

Ca vient du fait qu'une inner class déclarée dans une classe générique est implicitement générique sur le même paramètre de type que sa classe parente.

En considérant :

class A

<T>

{

  class B

  {

  }

}

Le paramètre de type T est propagé à B. La déclaration en CIL de B est d'ailleurs :

.class auto ansi nested public beforefieldinit B<T>

      extends [mscorlib]System.Object

{

}

En écrivant :

class A<T>

{

  class B<U>

  {

  }

}

On rend la classe interne B générique sur deux paramètres de types : T et U.

.class auto ansi nested public beforefieldinit B`1<T,U>

      extends [mscorlib]System.Object

{

}

Cela dit, il y a bien un bug lorsque reflector tente de produire le code C#...

romain verdier

# re: Un bug dans Reflector avec les generics @ mercredi 4 juin 2008 18:59

Oui Romain, c'est dans l'affichage C# qu'il y a le bug.

Matthieu MEZIL

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- WPF : la gestion des dates (Label, TextBlock) par Pierrick's Blog le il y a 4 heures et 42 minutes

- [ASP.NET] - ASP.NET Generated Image par Aurelien's Blog - When ClientSide meets .Net le il y a 6 heures et 10 minutes

- Utiliser le SDK Open XML pour manipuler vos documents Office Open XML par Julien Chable le il y a 7 heures et 24 minutes

- [Silverlight] - Créer un contrôle réutilisable et des propriétés personnalisées. par Danuz le il y a 10 heures et 41 minutes

- Photosynth : Composez et partagez vos scènes ! par Blog technique de Nicolas Boonaert le il y a 10 heures et 44 minutes

- Comment d&#233;bugger un programme de g&#233;n&#233;ration de code utilis&#233; dans VS ? par Matthieu MEZIL le il y a 10 heures et 45 minutes

- Avoir une propriété sur l'object context qui renvoit les sous-entités par Matthieu MEZIL le il y a 10 heures et 57 minutes

- Sortie du SDK 1.1 de Visual Studio 2008 par Michel Perfetti [Miiitch] le il y a 13 heures et 31 minutes

- Skyfire, Silverlight sur votre mobile ! par alex# le il y a 13 heures et 48 minutes

- VSTSDB 2008 GDR CTP16 est arrivé par Noham Choulant le il y a 14 heures et 52 minutes