Вот такое 20го числа майкрософт зарелизила:
class Type1
{
// This parameter will have an attribute (in IL) of type `IsReadOnly`
public void Method1(ref readonly int param1) { throw null; }
// This method return type will have an attribute (in IL) of type `IsReadOnly`
public ref readonly int Method2() { throw null; }
}
Зачем верхний (input) понятно, хотя может и не до конца.
А зачем нижний (return)?
Туплю
Если можно пример парами — как раньше делалось и как теперь это готовить
И зачем оно в IL нужно, можно же было только си-шарпом обойтись