В C# есть методы расширения. Создай статический класс и метод с this параметром: public static string Trim(this string str) {...}. Потом используешь его как обычный метод строки. Только существующие методы переопределить нельзя.
Можно использовать методы расширения для добавления функционала. Для этого создаешь статический класс с методом, принимающим this параметр, как в примере: public static string Trim(this string str) {...}. Важно помнить, что если метод с таким именем уже существует у типа, будет вызван именно он, так что стоит выбирать уникальные имена.
в C# нет прямого аналога prototype из JS, но extension методы работают похоже. создаешь статический класс StringExtensions, внутри пишешь public static string MyMethod(this string input) { ... }. только не забудь добавить using для неймспейса с расширениями. я так для дат свои методы добавлял — очень удобно