В вашем вопросе есть да и нет.
Да, вы можете расширять существующие типы, используя методы расширения. Методы расширения, естественно, могут получить доступ только к общедоступному интерфейсу типа.
public static string ConvertWhitespacesToSingleSpaces(this string value) {...}
// some time later...
"hello world".ConvertWhitespacesToSingleSpaces()
Нет, вы не можете вызвать этот метод Trim (). Методы расширения не участвуют в перегрузке. Я думаю, что компилятор должен даже дать вам сообщение об ошибке, детализирующее это.
Методы расширения доступны только в том случае, если пространство имен, содержащее тип, определяющий метод, использует ʻed.