Тема: мутабельний та іммутабельний список
поясніть будь-ласка! що означають ці види списків?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C#, .NET → мутабельний та іммутабельний список
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
поясніть будь-ласка! що означають ці види списків?
В .NET списки не поділяються на мутабельні і не мутабельні, бо практично всі колекції в стандартній бібліотеці за замовчуванням мутабельні (навіть якщо вони readonly). Мікромякі не змогли зробити нормальну архітектуру в .NET, бо переслідували ціль зкопіювати Java в такий спосіб, щоб його не можна було використати без мікромяких програмних продуктів. Зараз ситуація інша (в кращу сторону), але це завдяки ентузіастам типу Mono.
Цікаво, що в стандартній бібліотеці є такий клас System.ComponentModel.ImmutableObjectAttribute, який практично не використовується, бо нема де. Тобто комусь в голову таки прийшла світла ідея, але йому не дали її повністю реалізувати.
Трохи про архітектуру .NET:
Мікромякі зробили readonly колекції нащадками змінюваних колекцій і в методах Add, Remove кидають exception'и. Має бути навпаки, бо readonly колекція взагалі не має містити цих методів, тоді як змінювана колекція розширює функціонал і тому має бути нащадком від не змінюваної.
Приклади не правильного наслідування в readonly колекціях .NET:
System.Collections.ReadOnlyCollectionBase : ICollection
System.Collections.ObjectModel.ReadOnlyCollection<T> : IList<T>, ICollection<T>
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися