Есть ли недостатки в работе
Мне просто интересно, где есть минусы в использовании in
Аргумент метода из C# 7.2 Я знаю, что это рекомендуется для работы со Structs, и они говорят, что это не сильно увеличит производительность, но из того, что я могу сказать, это не окажет негативного влияния на код и может помочь вам с исключениями переполнения стека. при выполнении рекурсий. Доза, если кто-нибудь знает вескую причину, почему все методы не должны быть помечены как in
? Я нашел, почему люди рекомендуют избегать ref
а также out
но они не работают здесь.
1 ответ
Так как это вопрос, связанный с производительностью, как предмет обсуждения in
По той причине, что был введен по этой причине, трудно найти один правильный ответ без реального измерения производительности на конкретном примере кода.
Но...
Мы знаем это in
создает ссылку, которая 32bit
в ОС x86 и 64bit
на ОС x64.
Теперь рассмотрим структуру как
struct Token
{
char x;
}
на x64 OS, скопируйте эту структуру в стек, скорее всего, будет выполняться быстрее, чем создавая 64bit
ссылка на те же данные.
Плюс, не забывайте, что in
подразумевает "постоянство" в экземпляре, которое выходит за рамки соображений производительности и нацелено непосредственно на ваш дизайн. Следовательно, хотя с точки зрения производительности, некоторые рассуждения могут быть спорными, с точки зрения дизайна, in
имеет четкую и ясную семантику для конкретных вариантов использования проекта.