Вот как вы можете достичь этого.Код нуждается в некоторой настройке, но только для начала:
Сначала создайте класс типа «строитель», который манипулирует строкой, используя ваши методы Sql
class SqlMethods
{
string _target; // probably want to use a StringBuilder instead
public SqlMethods(string target)
{
_target = target;
}
SqlMethods Left(int n)
{
_target = ...; // implementation of Left()
return this;
}
public override string ToString() {return _target;}
}
Создание экземпляра этого классаметод расширения, подобный этому:
static class StringExtensions
{
public static SqlMethods SQL(this string s) {return new SqlMethods(s);}
}
Это позволяет использовать такой API:
"abc".SQL().Left(2).ToString()