С новыми extension-методами наконец-то появилась перегрузка операторов для сторонних типов:
static class Extensions {
extension<T>(IEnumerable<T>) {
public static IEnumerable<T> operator +(IEnumerable<T> a, IEnumerable<T> b)
=> a.Concat(b);
}
extension<T>(T[]) {
public static T[] operator +(T[] a, T[] b)
=> a.Concat(b).ToArray();
}
}Выглядит синтаксис с
extension<T>(TypeName<T>) максимально странно, зато extension-ы наконец-то избавились от странных ограничений старого синтаксиса с this@epeshkblog