Числовые операторы являются частью самого IL. Оператор «+» в строках немного особенный - он не перегружается самим строковым типом, он выполняется компилятором. Компилятор C # переводит:
string x = a + "hello" + b;
в
string x = string.Concat(a, "hello", b);
Это более эффективно, чем если бы конкатенация выполнялась с использованием обычных операторов, поскольку в противном случае при каждой конкатенации должна была бы создаваться новая строка.