Что именно (под капотом) выполняют операторы +=
и -=
?
Или они неявны в том, что они определены для каждого типа?
Я использовал их широко, это очень простая особенность синтаксиса, но я никогда не думал о глубинах того, как это работает.
Что вызвало вопрос
Я могу связать строковое значение следующим образом:
var myString = "hello ";
myString += "world";
Все отлично. Но почему это не работает с коллекциями?
var myCol = new List<string>();
myCol += "hi";
Вы можете сказать: "Хорошо, что вы пытаетесь добавить другой тип, вы не можете добавить строку к типу, который не является строкой". Но следующее не работает:
var myCol = new List<string>();
myCol += new List<string>() { "hi" };
Хорошо, может быть, он не работает с коллекциями, но не является ли() коллекцией обработчиков событий?
myButton.Click += myButton_Click;
Мне явно не хватает глубокого понимания того, как работают эти операторы.
Обратите внимание: я не собираюсь создавать коллекцию myCol
таким образом, в реальном проекте. Мне просто интересно, как работает этот оператор, он гипотетический.