В asp.net 2.0 У меня есть несколько «выпадающих списков», определяемых с помощью дженериков (примеры цвета глаз, цвета волос и т. Д.). Поля все типичны; id, text и т. д. Все они определены как их собственные классы, которые должны реализовать интерфейс, созданный мной ILookup. Однако, когда я пытаюсь вернуть список <> этого класса с помощью:Какую ошибку я делаю при создании ограничения в дженериках?
ddlEyeColor.DataSource = luMgt.GetLookUpItemList(Of EyeColor)()
, который вызывает BC слой:
Public Function GetLookUpItemList(Of t As {ILookup, New})() As List(Of t)
Dim luMgt As New LookupMgt
Return luMgt.GetLookUpItemList(Of t)()
End Function
который вызывает слой DBC, который, в части есть ....
Public Function GetLookUpItemList(Of t As {ILookup, New})() As List(Of t)
Dim lstGenericList As New List(Of t)
'rest of code to populate the list here
end function
сообщение об ошибке утверждает, что EyeColor не реализует ILookup.
Ошибка 21 Аргумент типа 'EyeColor' не наследует и не реализует тип ограничения 'ILookup'.
Но вот начало класса EyeColor ....
Public Class EyeColor
Implements ILookup
Вот полный интерфейс ....
Открытый интерфейс ILookup
Property ID() As Int32
Property Text() As String
Property Description() As String
Property Status() As Status
Property OrderID() As Int32
ReadOnly Property LookUpType() As LookUpType
End Interface
И здесь, в классе EyeColor, я реализую свойства интерфайла ace
Public Overrides Property Description() As String Implements ILookup.Description
Get
Return MyBase.Description
End Get
Set(ByVal value As String)
MyBase.Description = value
End Set
End Property
Public Overrides Property ID() As Integer Implements ILookup.ID
Get
Return MyBase.ID
End Get
Set(ByVal value As Integer)
MyBase.ID = value
End Set
End Property
Public Overrides Property OrderID() As Integer Implements ILookup.OrderID
Get
Return MyBase.OrderID
End Get
Set(ByVal value As Integer)
MyBase.OrderID = value
End Set
End Property
Public Overrides Property Status() As Status Implements ILookup.Status
Get
Return MyBase.Status
End Get
Set(ByVal value As Status)
MyBase.Status = value
End Set
End Property
Public Property EyeColor() As String Implements ILookup.Text
Get
Return _eyeColor
End Get
Set(ByVal value As String)
_eyeColor = value
End Set
End Property
Public ReadOnly Property LookUpType() As LookUpType Implements ILookup.LookUpType
Get
Return BE.LookUpType.EyeColor
End Get
End Property
Есть ли какие-нибудь ошибки в классе EyeColor? Если интерфейс еще не полностью реализован, по крайней мере, с помощью «NotImplementedExceptions» ошибки компилятора будут «каскадом» таким образом. – Jay
Почему эти свойства объявлены переопределениями? Здесь где-то есть базовый класс? –