Информация об изменениях

Сообщение Re: Почему в C# не любят кастомные операторы? от 20.01.2023 13:34

Изменено 20.01.2023 13:42 Serginio1

Re: Почему в C# не любят кастомные операторы?
Здравствуйте, Shmj, Вы писали:

S>Вот в С++ любят. И ведь приятнее же написать


S>stringBuilder += "test" чем stringBuilder.Append("test") ?


S>Вроде бы и поддерживаются на уровне кода, но не пошло... Почему?


В С++ шаблоны это генерация текста. А так как хочется, что бы разные типы обрабатывали операторы правильно вот и придумали через перегрузку операторов.
У них например >> хрен поймешь что в итоге делает.

В C# кстати сделали аналог через Поддержка универсальной математики
There are several language features that enable generic math support:

static virtual members in interfaces
checked user defined operators
relaxed shift operators
unsigned right-shift operator

Re: Почему в C# не любят кастомные операторы?
Здравствуйте, Shmj, Вы писали:

S>Вот в С++ любят. И ведь приятнее же написать


S>stringBuilder += "test" чем stringBuilder.Append("test") ?


S>Вроде бы и поддерживаются на уровне кода, но не пошло... Почему?


В С++ шаблоны это генерация текста. А так как хочется, что бы разные типы обрабатывали операторы правильно вот и придумали через перегрузку операторов.
При этом операторы инлайнятся.

У них например >> хрен поймешь что в итоге делает.

В C# кстати сделали аналог через Поддержка универсальной математики
There are several language features that enable generic math support:

static virtual members in interfaces
checked user defined operators
relaxed shift operators
unsigned right-shift operator