Le mot-clé this fait référence à l'instance courante de la classe. Fonctions membres statiques n'ont pas de ce pointeur. Le mot-clé this peut être utilisé pour l'accès des membres à partir de constructeurs, les méthodes d'instance, d'instance et des accesseurs.(extrait de msdn). Depuis il fait référence à une instance de la classe il est en conflit avec la nature de la statique, depuis statique n'est pas associé à une instance de la classe.
Une solution de contournement serait le suivant qui vous permet d'utiliser l'indexeur à l'encontre d'un privé
Dictionnaire si vous avez seulement besoin de créer une nouvelle instance et que l'accès à la partie statique.
public class ConfigurationManager
{
public ConfigurationManager()
{
// TODO: Complete member initialization
}
public object this[string keyName]
{
get
{
return ConfigurationManagerItems[keyName];
}
set
{
ConfigurationManagerItems[keyName] = value;
}
}
private static Dictionary<string, object> ConfigurationManagerItems = new Dictionary<string, object>();
}
Cela vous permet de passer l'ensemble de l'accès à un membre de la classe et il suffit de créer une instance de celle-ci et l'index.
new ConfigurationManager()["ItemName"]