Почему я должен когда-либо использовать обычную (по значению) структуру, передавая «in» (по ссылке только для чтения)? - PullRequest
0 голосов
/ 22 сентября 2018

Одной из новейших функций языка C # является ключевое слово in для передачи параметров.Например, вы можете передать struct по ссылке на метод, подобный этому:

public void DoSomething(in decimal x)
{
    // ...
}

, и вызвать так:

DoSomething(x);  // no need to DoSomething(in x);

Это передаст ссылку на десятичное число вРежим readonly, так что вызывающему абоненту не о чем беспокоиться.Вы не можете изменить значение x внутри метода DoSomething, и вам даже не нужно использовать «in» в вызывающей программе.Это абсолютно прозрачно.

Кажется, что оно имеет только преимущества, в основном с точки зрения производительности (для больших структур).

Итак, мой вопрос: почему я должен когда-либо использовать структуру значенийпередавая in (только для чтения) передавая мои методы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...