Невозможно реализовать ICommandSource в VB

Кто-нибудь когда-нибудь пытался реализовать ICommandSource с VB? Microsoft предоставляет примеры на C#, и, поскольку VB не допускает неявную реализацию, этот интерфейс как недостижимый в VB!!

http://msdn.microsoft.com/en-us/library/ms771361.aspx

1 ответ

Решение

Это зависит от того, на каком классе вы хотите его реализовать. Если вы вводите свойства Command, CommandParameter и CommandTarget в своем собственном классе (где вы реализуете интерфейс), вы можете просто реализовать его как любой другой интерфейс:

Public ReadOnly Property Command() As ICommand
  Implements ICommandSource.Command
  Get
    ' implementation goes here
  End Get
End Property

Кстати, вы все еще можете использовать DP для реализации: директива Implements находится на свойстве CLR и не мешает реализации "не трогать" методов получения и установки.

Если класс, для которого вы хотите его реализовать, уже имеет (унаследованные) свойства Command, CommandParameter и CommandTarget и вы хотите, чтобы реализация интерфейса использовала их повторно, вам нужно будет создать новые свойства с новыми именами, объявить их как реализации интерфейса и вернуть их на существующие свойства

Public ReadOnly Property ICommandSource_Command() As ICommand
  Implements ICommandSource.Command
  Get
    Return Me.Command  ' the existing implementation that can't be made implicit
  End Get
End Property
Другие вопросы по тегам