Pull to refresh

Comments 11

Ага. Когда я замерял производительность, Task всегда оказывался эффективнее, чем ValueTask.
И будет она называться «Отказываемся от Task и пишем собственный планировщик».
Реально, накладные расходы при асинхронных операциях с сокетами меня выбешивали. В итоге написал собственный однопоточный планировщик с IOPS на пару порядков выше.
Спасибо, отличный перечень в короткой статье минорных, но приятных возможностей C#7. При этом хотелось бы, чтобы в статье упоминался еще async Main() (появился, если не ошибаюсь, в C# 7.2).

Насколько понимаю, в предыдущих статьях об этом не говорилось, однако это достаточно важная возможность, когда асинхронным API пользуется консольное приложение, и ей самое место в статье про солянку минорных возможностей.

До этого было не очень здорово, когда приходилось бойлерплейтить код, позволяющий вызывать из Main асинхронное API.

"Бойлерплейтить" — это добавить один метод MainAsync и дождаться его завершения в Main?

UFO landed and left these words here
p.GetCoordinates(out var x, out var y);

Читабельность ломается, непонятно какой тип. Хотя в некоторых случаях наверное удобно так писать.
Уже можно начинать писать статьи о новых возможностях C# 8
> Out переменные
> У переменной будет значение по умолчанию.

Если я правильно понимаю, там будет то, что туда положит вызываемая функция (она же обязана присвоить значения out-параметрам перед выходом). Да, скорее всего там будут дефолты, но в целом, по идее, это необязательно.
Встает вопрос, а что если конвертирование строки в в переменную типа DateTime будет неудачным, а мы все равно попытаемся воспользоваться выходным значением?
У переменной будет значение по умолчанию.


Мне кажется это не совсем правда. В общем случае там будет значение, которым метод инициализировал переменную. И совсем не обязательно это будет дефолтное значение. Согласно спецификации C# использование ключевого слова out с параметром метода обязывает метод инициализировать значение переменной до возвращения значения, но не накладывает никаких ограничений на само значение для инициализации.
Sign up to leave a comment.

Articles