На самом деле первый способ создания временного * более удобочитаемый по двум причинам:
1) это более кратко
Меньше кода для чтения, нет введенных ненужных локальных переменных, нет потенциального конфликта имен с другим локальным или теневого копирования какой-либо переменной с тем же именем в прилагаемой области видимости
2) он сообщает то, чего не знает вторая форма, что объект временно используется.
Читая это, я знаю, что этот экземпляр больше никогда не будет использоваться, поэтому в моем «ментальном компиляторе», который я использую для понимания кода, который я читаю, мне не нужно сохранять ссылку на него. больше, чем код сохраняет ссылку на него.
Однако, как отмечает Мерадад, делать это с помощью класса Random не очень хорошая идея.
Как он также отмечает, излишние скобки делают его менее лаконичным; если вы не находитесь в пыльном углу языка, предположите, что компетентные программисты знают приоритет оператора языка. В этом случае, даже если я не знаю приоритет оператора, альтернативный синтаксический анализ (вызов new при возврате функции) является бессмысленным, поэтому «очевидное» чтение - это правильное чтение.
int RandomIndex = (new Random()).Next(0,100);
int RandomIndex = new Random().Next(0,100);