Ограничение типа для ArrayList

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Ограничение типа для ArrayList

Сообщение Ramzes » 15.05.2006 (Пн) 9:50

Всем известно что класс ArrayList может содержать колекцию асолютно любых обьектов (главное требование, которое трудно не выполнить (если не сказать не возможно) заключается в томм, что обьекты хранимые в ArrayList должны наследоватся от класса SystemObject). А как сделать так, что б можна было хранить только обьекты опрделенного типа? Например String или моего собственного :roll:

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 15.05.2006 (Пн) 10:17

Если подойдет такой вариант, тогда вот так.
Код: Выделить всё
Imports System
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Text
Imports System.Windows.Forms
Imports System.Environment
Imports System.Runtime.InteropServices
Imports System.ComponentModel

Public Class MeArrayList : Inherits ArrayList

    Public Sub New()
        MyBase.New()
    End Sub

    Private components As System.ComponentModel.IContainer

    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
    End Sub

    Public Shadows Sub Remove(ByVal value As String)
        MyBase.Remove(value)
    End Sub

    Public Shadows Sub RemoveAt(ByVal value As Integer)
        MyBase.RemoveAt(value)
    End Sub

    Public Shadows Sub Insert(ByVal index As Integer, ByVal value As String)
        MyBase.Insert(index, value)
    End Sub


    Public Shadows Function Contains(ByVal value As String) As Boolean
        Return MyBase.Contains(value)
    End Function


    Public Shadows ReadOnly Property Item(ByVal index As Integer) As String
        Get
            Return MyBase.Item(index)
        End Get
    End Property

    Public Overridable Shadows Function Add(ByVal Item As String) As Integer
        Return MyBase.Add(Item)
    End Function

    Public Overridable Shadows Sub AddRange(ByVal Items() As String)
        MyBase.AddRange(Items)
    End Sub

    Public Shadows Function IndexOf(ByVal value As String) As Integer
        Return MyBase.IndexOf(value)
    End Function
End Class

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 15.05.2006 (Пн) 11:08

temur
Насколько мне известно есть вариант проще

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 15.05.2006 (Пн) 19:59

Public Class List(Of T)
Inherits System.Object
Member of: System.Collections.Generic

не пойдёт?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 16.05.2006 (Вт) 9:46

Sebas
Сенькс, уже разобрался


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 116

    TopList