Я думаю, что проблема в том, что вы вызываете String.F, когда класс, которому принадлежит метод, является MyExtensions;не String ... если вы хотите вызвать его таким образом, это должен быть MyExtensions.F ("test {0}", "test")
Как уже упоминали другие, хотя это совершенно верноПохоже, что он обходит стороной то, что отличает методы расширения.
Выполнение "test {0}". F ("test");должен давать тот же результат, что и MyExtensions.F ("test {0}", "test");Если F не был установлен как метод расширения, только последний подход будет действительным.