Возможно, я просто не знаю, что искать, но я собираюсь немного поработать здесь, пытаясь понять, как создать набор унаследованных классов. Базовый класс, я никогда не буду использовать.Невозможно создать коллекцию унаследованных классов
В принципе, у меня есть 3 компонента:
- Базовый класс вызовов ImageFormat классы
- Дитя ImageForm
- код в Sub Main() в цикле создания сбора и цикл через него.
Так оно и есть, # 3. Проблема в том, что он всегда получает последний элемент, добавленный в коллекцию, и использует только его значения.
Вот мой базовый класс:
Public MustInherit Class ImageFormat
Protected Shared _extentions As String()
Protected Shared _targettype As String
Protected Shared _name As String
Public ReadOnly Property Extentions As String()
Get
Return _extentions
End Get
End Property
Public ReadOnly Property TargetType As String
Get
Return _targettype
End Get
End Property
Public ReadOnly Property Name As String
Get
Return _name
End Get
End Property
End Class
А вот дочерние классы:
Class WindowsEnhancedMetafile
Inherits ImageFormat
Sub New()
_extentions = {"EMF"}
_targettype = "jpg"
_name = "Windows Enhanced Metafile"
End Sub
End Class
Class WindowsBitmap
Inherits ImageFormat
Sub New()
_extentions = {"BMP", "DIB", "RLE", "BMZ"}
_targettype = "jpg"
_name = "Windows Bitmap"
End Sub
End Class
Class WindowsMetafile
Inherits ImageFormat
Sub New()
_extentions = {"WMF"}
_targettype = "jpg"
_name = "Windows Metafile"
End Sub
End Class
(не знаю, если эти дочерние классы должны отличаться, как только instantied от типа ImageFormat или Модели Singleton - были бы благодарны за любые мысли, которые у вас есть)
Тогда моя рутина:
Sub Main()
Dim imgFormats As New List(Of ImageFormat)
imgFormats.Add(New WindowsBitmap)
imgFormats.Add(New WindowsMetafile)
imgFormats.Add(New WindowsEnhancedMetafile)
Dim name As String = String.Empty
For Each imgFormat In imgFormats
name = imgFormat.Name
Console.WriteLine(name)
Next
Console.ReadLine()
End Sub
Это возвращает Windows Enhanced Metafile три раза на консоли. Что я здесь делаю неправильно?
безупречный! Спасибо! –