Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Создание класса строго типизированного набора на основе класса CollectionBase
8 февраля 2009

Сейчас вы создадите класс набора, который воспринимает и возвращает
исключительно экземпляры класса Doughnut, объявив производный класс
на основе класса CollectionBase из .NET Framework. Вы напишете реализа-
цию для методов Add и Remove, а также для свойства Item, включив в нее
код, обеспечивающий добавление к набору и извлечение из него только
объектов типа Doughnut. Вы также модифицируете код приложения Doughnut
Factory, чтобы оно могло использовать новый класс набора.
>• Создание класса строго типизированного набора
1. В меню Project выберите команду Add Class — откроется окно Add New Item.
Назовите класс DoughnutCollection.vb или DoughnutCollection.es и щелкните (.Ж —
откроется окно редактора кола с заготовкой нового класса.
2. Сделайте новый класс потомком System. Collections. CollectionBase, добавив к нему
следующий код:
Visual Basic .NET
Public Class DoughnutCollection
Inherits System.Collections.CollectionBase
End Class
Visual C#
public class DoughtnutCollection : System.Collections.CollectionBase
{
!
3. Создайте метод Add, который будет добавлять элементы к набору. Этот метод
должен принимать объекты Doughnut в качестве параметра и вызывать метод Add
внутреннего объекта List.
Visual Basic .NET
Public Sub Add(ByVal aDoughnut As DoughnutMachine. Doughnut)
List.Add(aDoughnut)
End Sub
Visual C#
public void Add(DoughnutMachine, Doughnut aDoughnut)
{
List.Add(aDoughnut);
!
4. Напишите доступный только для чтения индексатор (С#) или свойство по умол-
чанию с именем Item (Visual Basic), возвращающее объект Doughnuts заданным
индексом. Заметьте: элементы объекта List хранятся, как объекты типа Object,
поэтому вам потребуется явно преобразовать привести элемент набора к типу
Doughnut, прежде чем возвращать его. Это можно сделать так:
Visual Basic .NET
Default Public Readonly Property Itern(ByVal Index As Integer)
Get
Return CType( List. Item (Index). DoughnutMachine. Doughnut)
End Get
End Property
Visual C#
public DoughnutMachine. Doughnut this[int index]
{
get
!
return (DoughnutMachine. Doughnut )Li$t[index];
5. Напишите метод, который будет удалять из набора объект Doughnut. Этот метод
должен принимать объект Doughnut, его следует реализовать как оболочку для
метода List. Remove. Вот пример:
Visual Basic .NET
Public Sub Remove(ByVal aDoughnut As DoughnutMachine. Doughnut)
Проверить, является ли заданный объект Doughnut членом набора
If List.Contains(aDoughnut) - True Then
Удалить заданный объект Doughnut
List. Remove(aDoughnut)
End If
End Sub
Visual C#
public void RernoveCDoughnutMachine. Doughnut aDoughnut)
!
if (List.Contains(aDoughnut) == true)
{
List. Rercove(aDoughnut);
6. Откройте код класса DoughnutMachine, найдите строку, в которой объявляется
закрытая переменная mDoughnuts, и измените ее так, чтобы в ней можно было
хранить экземпляр класса DoughnutCollection:
Visual Basic .NET
Private mDoughnuts As New DoughnutCollection()
Visual C#
private DoughnutCollection mDoughnuts = new DoughnutCollection();
7. Измените свойство Doughnuts, чтобы оно получило возможность взаимодейство-
вать с новым объектом DoughnutCollection, например, так:
Visual Basic .NET
Default Public Property Doughnuts(ByVal Index As Integer) As Doughnut
Get
Return mOoughnuts(Index)
End Get
SetfByVal Value As Doughnut)
mDoughnuts. Add{ Value)
End Set
End Property
Visual C#
public Doughnut this[int Index]
{
get
{
return mDougnnuts[Index];
}
set
{
rnDoughniJts.Add{ value):
i


Теги: .NET

Статьи по теме:

Создание формы
Конфигурирование защиты по правам доступа к коду
Работа в редакторе кода
Применение наборов элементов управления
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Промежуточный язык
Примеси (mixin)
Реализация полиморфизма через наследование
Установка сборок в виде компилированных образов
Применение методов формы
Работа с классом Help
Реализация свойств
Изменение меню во время выполнения
Рекурсия
Установка точек прерывания
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Создание класса строго типизированного набора на основе класса CollectionBase. Регион сайта: Москва и Санкт-Петербург