`in` C# 7
От: #John http://pocolab.com
Дата: 04.12.18 10:37
Оценка:
Здравствуйте,
В каких случая лучше использовать `in`?
Напр. есть класс:
public static class CipherUtility
    {
        public static string Encrypt<T>(in string value, in string password, in string salt)
        {
            ..
            return str;
        }

        public static string Decrypt<T>(this string text, string password, string salt)
        {
            ..
            return str;
        }
    }

Если использовать `in` — экономится память при передачи строк в методы и трата CPU на лишнее копирование,
особенно если входящий параметр — очень большая строка.
Но с другой стороны, без `in` вызов метода `Decrypt` в длинной цепочке вызовов будет выглядеть более читаемым/эстетичным:
"some_str".SomeOtherMethod().Decrypt<object>("pass","salt").SomeOtherMethod2()...
И нет опасности, что в каком-нибудь другом потоке value/password/salt поменяются пока будет выполнятся метод `Encrypt`
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.