J'ai ajouté une méthode d'extension qui est un raccourci vers string.Format:Méthodes d'extension VS résolution de méthode statique - qu'est-ce qui me manque dans la spécification?
public static string Format(this string format, params object[] args)
{
return String.Format(format, args);
}
Quand j'invoque cette méthode comme ceci:
"{0}".Format(1);
tout fonctionne comme un charme. Alors que
"{0}".Format("1");
ne compile pas avec ce message d'erreur:
erreur CS0176: Membre 'string.Format (string, params objet [])' ne peut pas être accessible avec une référence d'instance ; le qualifier avec un nom de type à la place
J'ai corrigé ce problème en renommant une méthode (c'était une douleur). Mais pourquoi cela arrive-t-il? Je connais l'extension par rapport à la priorité d'instance - mais ce n'est pas une méthode d'instance. Et IMO si un chemin ne pouvait pas être résolu (référençant la méthode statique dans un contexte non statique) alors l'autre (entièrement légitime) devrait être tenté. Qu'est-ce qui me manque dans les spécifications?
Mise à jour 1 Ajout d'un message d'erreur de compilation.
Quel est le message d'erreur de compilation? – thecoop
Merci. J'ai ajouté un message d'erreur à la question racine. –