Здравствуйте, elmal, Вы писали:
E>Здравствуйте, ZAMUNDA, Вы писали:
ZAM>>Мой котелок родил только ObjectModel.ReadOnlyCollection пользовать, но в священном писании написано что ObjectModel для создания библиотек придумано, а у меня ж просто класс внутренний. Сдаётся мне что я на белазе ведро глины пытаюсь перевезти (если вы меня понимаете). Мож есть какое-нить менее ресурсоёмкое решение. E>Чет не понимаю в чем проблема. Заврапить обычный массив, только и всего. То есть создать враппер ImmutableArray, конструктор которого будет принимать массив (или коллекцию — что угодно), и у этого враппера будет определен только метод получения элемента. Почему это не вариант?
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Задача: У класса надо сделать свойство-массив, да так чтоб никто и никогда извне не мог ни сам массив, ни значения его элементов поменять. Внутри класса тоже менять массив не надо.
ZAM>Мой котелок родил только ObjectModel.ReadOnlyCollection пользовать, но в священном писании написано что ObjectModel для создания библиотек придумано, а у меня ж просто класс внутренний. Сдаётся мне что я на белазе ведро глины пытаюсь перевезти (если вы меня понимаете). Мож есть какое-нить менее ресурсоёмкое решение.
ZAM>PS: про свойства классов-элементов, я знаю, если никто не сможет эземпляр класса затереть уже хороошо.
В VB вроде есть именованные индексеры ( будут obj.MyArray[i] на C#). Оставляешь только геттер — и получаешь иммутабельный массив.
Задача: У класса надо сделать свойство-массив, да так чтоб никто и никогда извне не мог ни сам массив, ни значения его элементов поменять. Внутри класса тоже менять массив не надо.
Мой котелок родил только ObjectModel.ReadOnlyCollection пользовать, но в священном писании написано что ObjectModel для создания библиотек придумано, а у меня ж просто класс внутренний. Сдаётся мне что я на белазе ведро глины пытаюсь перевезти (если вы меня понимаете). Мож есть какое-нить менее ресурсоёмкое решение.
PS: про свойства классов-элементов, я знаю, если никто не сможет эземпляр класса затереть уже хороошо.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Задача: У класса надо сделать свойство-массив, да так чтоб никто и никогда извне не мог ни сам массив, ни значения его элементов поменять. Внутри класса тоже менять массив не надо.
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Задача: У класса надо сделать свойство-массив, да так чтоб никто и никогда извне не мог ни сам массив, ни значения его элементов поменять. Внутри класса тоже менять массив не надо.
Индексатор?
private int[] array;
public int this[int index] {
get { return array[index]; }
}
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, ZAMUNDA, Вы писали:
ZAM>>Задача: У класса надо сделать свойство-массив, да так чтоб никто и никогда извне не мог ни сам массив, ни значения его элементов поменять. Внутри класса тоже менять массив не надо.
H>Индексатор? H>
H>private int[] array;
H>public int this[int index] {
H> get { return array[index]; }
H>}
H>
Упс, тема-то про VB.NET:
Private array As String()
Default Public Property Item(ByVal index As Integer) As String
Get
Return array(index)
End Get
Set(ByVal value As String)
array(index) = value
End Set
End Property
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Мой котелок родил только ObjectModel.ReadOnlyCollection пользовать, но в священном писании написано что ObjectModel для создания библиотек придумано, а у меня ж просто класс внутренний. Сдаётся мне что я на белазе ведро глины пытаюсь перевезти (если вы меня понимаете). Мож есть какое-нить менее ресурсоёмкое решение.
Чет не понимаю в чем проблема. Заврапить обычный массив, только и всего. То есть создать враппер ImmutableArray, конструктор которого будет принимать массив (или коллекцию — что угодно), и у этого враппера будет определен только метод получения элемента. Почему это не вариант?