Я добавил метод расширения, который является ярлыком для строки. Формат:
public static string Format(this string format, params object[] args)
{
return String.Format(format, args);
}
Когда я вызываю этот метод следующим образом:
"{0}".Format(1);
все работает как шарм,Хотя
"{0}".Format("1");
не компилируется с этим сообщением об ошибке:
ошибка CS0176: член 'string.Format (string, params object [])' не может быть доступен с экземпляромссылка;вместо этого уточните имя типа
Я исправил эту проблему, переименовав метод (о, это было больно).Но почему это происходит?Я знаю о расширении против приоритета экземпляра - но это не метод экземпляра.И IMO, если один путь не может быть разрешен (ссылается на статический метод в нестатическом контексте), тогда следует попытаться использовать другой (полностью легитимный).Что мне не хватает в спецификации?
Обновление 1 Добавлено сообщение об ошибке компиляции.