ИИ для программиста?
Давайте вы сотрёте это? )))
Если кто не понял, я это имел ввиду. Создание нового экземпляра всегда было через new, а тут они сами брейкают свои конвенции.
Впрочем, возможно, что это не создание, а условная запись организации пачки данных в кортежном типе. Но тогда эта условная запись тоже ломает конвенции. Лишь простые типы создаются без new, типа int, float, bool и т.п. Остальные, включая кастомные, должны через new. А кортежи и кортежные типы это явно кастомные типы.
Вобщем, вычитал, что это синтактический сахар. Внутри наверняка создаётся какой-нибудь анонимный тип или что-то такое.
Однако, можно сделать так:
x = new(2,"b");
С этими новыми кортежными типами отпала необходимость заводить словари с ключами в виде кастомных типов, для чего надо было этим кастомным типам добавить реализацию IComparable. И анонимные классы в явном виде тоже можно не определять. Теперь ассоциативные коллекции можно просто делать так
List<Renderer> renderers = ... var renderersAndColors = renderers .Select<Renderer, (Renderer, Color)>(r => (r, r.material.color)) .ToArray(); // или можно дать названия полям кортежного типа (Renderer MyRenderer, Color MyColor)[] renderersAndColors = ...