Je me suis retrouvé confronté à un problème idiot : une erreur de compilation sur une classe Item dans laquelle j'avais mis un indexeur:
public class Item
{
public string this[string index]
{
get
{
return "";
}
}
}
Etrangement ce code ne compile pas. En effet le compilateur s'arrête sur l'erreur suivante au niveau du this : "Item : member names cannot be the same as their enclosing type".
Après quelques recherches, il se trouve que le compilateur traduit en interne la propriété this par le nom "Item". Et donc forcément de ce fait la classe et une des ses propriétés ont le même nom. Seule solution : renommer la classe.