Как создать методы прототипа (аналогично JavaScript) в C#.Net?

Создание методов прототипа в C#.NET

Мне интересно, как можно реализовать методы прототипа в C#.NET, как это делается в JavaScript.

Например, в JavaScript я создаю метод trim для объекта строки так:

String.prototype.trim = function() {
    return this.replace(/^(\s+|\s+$)/g, "");
}

Как мне добиться подобного в C#.NET?

В 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 для неймспейса с расширениями. я так для дат свои методы добавлял — очень удобно