Здравствуйте, rameel, Вы писали:
S_S>>S_S>>struct S
S_S>>{
S_S>> public S(int i) { Prop = i; }
S_S>> public /*readonly*/ int Prop { get; }
S_S>>}
S_S>>static int Func(in S p)
S_S>>{
S_S>> int sum = 0;
S_S>> for (int i = 0; i < 1000_000_000; i++)
S_S>> sum = p.Prop;
S_S>> return sum;
S_S>>}
S_S>>
R>На заметку, в твоем примере, что с readonly что без, не будет никакого клонирования, так как автосвойство и так получает такой модификатор
вот это и есть ужос:
1) Почему тогда у меня одинаково тормозят для "in" варианты и с автосвойствами и ручными.
2) Если у тебя C# 8, и по другому работает. А у меня C# 7.3, так работает (readonly только на struct можно ставить). В любом случае так не должно быть — ненадежная фича.
3) Понятно, что ничего не упадет. Но "in" ввели для экономии на клонированиях. Если вместо этого в 1 млрд больше клонирований, то это уже можно считать багом.