Как передаются Dictinary в C#?
Словари передаются по ссылке. Но если очень хочется, их можно передать по значению вручную.
Асинхронность async/await допускает использование словарей без исключений. (Вы ведь просто исполняете код в другом порядке.)
Возможно, вы перепутали асинхронность с многопоточностью, где словари желательно не изменять из разных потоков.
а написать тест в 5 строк не судьба?
в случае присвоения переменной - присваивается ссылка, тогда более одной переменной могут указывать на один и тот же экземпляр объекта
в качестве параметров методов, обычно передаются копии объектов, думаю Dictionary подчиняется общим правилам* (напомню - это элементарно проверить - консольное приложение на несколько строк)
для гарантированной передачи ссылки в качестве параметра, следует использовать префикс ref
ps * - две проверки подтвердили передачу по ссылке, ну что же, значит по ссылке, сори за поспешность ))Повлияет ли на результат асинхронность методов классов? await-async думаю тут надо искать сведения о потокобезопасности. на пример
https://docs.microsoft.com/ru-ru/dotnet/standard/c...
Dictionary там вроде не упоминается, но упоминается ConcurrentDictionary возможно вам надо присмотреться к пространству имен System.Collections.Concurrent