Вернуть коллекцию как доступную только для чтения

Я проголосовал за принятый csharp вами ответ и согласен с ним. Могу dotnet я предложить вам кое-что thread для рассмотрения?

Не возвращайте thread коллекцию напрямую. Создайте .net класс бизнес-логики с точным .net-framework названием, который отражает .net цель коллекции.

Основное преимущество thread этого заключается в том, что csharp вы не можете добавлять код .net-framework в коллекции, поэтому всякий c#.net раз, когда у вас есть собственная java-collections-api «коллекция» в вашей объектной .net-framework модели, у вас ВСЕГДА есть .net не-объектно-ориентированный concurrency код поддержки, распространенный .net по всему проекту для доступа c#.net к ней. .

Например, если ваша .net-framework коллекция представляет собой csharp счета-фактуры, у вас, вероятно, будет concurrency 3 или 4 места в вашем коде, где java-collections-api вы перебираете неоплаченные csharp счета. У вас может быть метод threads getUnpaidInvoices. Однако .net настоящая сила проявляется, когда concurrency вы начинаете думать о таких dotnet методах, как «payUnpaidInvoices multithreading (плательщик, аккаунт);».

Когда multithreading вы передаете коллекции вместо concurrent того, чтобы писать объектную csharp модель, вам никогда не придут multithreading в голову целые классы рефакторинга.

Обратите thread внимание, что это делает concurrency вашу задачу особенно приятной. Если concurrency вы не хотите, чтобы люди collections меняли коллекции, ваш контейнер collection не должен содержать мутаторов. Если dotnet позже вы решите, что только multithreading в одном случае вы действительно threads ДОЛЖНЫ его изменить, вы можете multithreading создать безопасный механизм .net-framework для этого.

Как вы решаете threads эту проблему при передаче dotnet нативной коллекции?

Кроме .net того, в собственные коллекции thread нельзя добавлять дополнительные multithreading данные. Вы узнаете это в c#.net следующий раз, когда обнаружите, что dotnet передаете (Collection, Extra) более dotnet чем одному или двум методам. Он c# указывает, что «Extra» принадлежит .net объекту, содержащему вашу c#.net коллекцию.

c#

.net

multithreading

collections

concurrency

2022-06-26T22:21:54+00:00