Одной из новейших функций языка C # является ключевое слово in
для передачи параметров.Например, вы можете передать struct
по ссылке на метод, подобный этому:
public void DoSomething(in decimal x)
{
// ...
}
, и вызвать так:
DoSomething(x); // no need to DoSomething(in x);
Это передаст ссылку на десятичное число вРежим readonly
, так что вызывающему абоненту не о чем беспокоиться.Вы не можете изменить значение x
внутри метода DoSomething
, и вам даже не нужно использовать «in» в вызывающей программе.Это абсолютно прозрачно.
Кажется, что оно имеет только преимущества, в основном с точки зрения производительности (для больших структур).
Итак, мой вопрос: почему я должен когда-либо использовать структуру значенийпередавая in
(только для чтения) передавая мои методы?