Там непонятно. В части про var: var f5 = () : string => null; В части про явный возвращаемый тип: f = short x => 1; Консистентность синтаксиса зашкаливает. (всё больше хочется в котлин)
Так ROSpan это просто, грубо говоря, указатель на память, по которому ее нельзя поменять. Но на одну и ту же память можно получить несколько разных span’ов, и некоторые будет не ридонли
Тут два указателя - span и this.bytes.Span. This.bytes только в конструкторе присваивается и далее не меняется. Или подразумевается, что где-то внутри десериализации создаётся копия указателя и она уже меняет память? Тогда чего ради System.Text.Json нас обманывает, прося на вход RO объект?
Хорошо. Поставлю вопрос иначе: были ли замечены случаи, при которых метод Deserialize класса JsonSerializer вываливался с ошибкой System.Text.Json.JsonException: '0xFF' is invalid after a value.? При этом до попытки десериализации в массиве нет байт 255, а после - есть.