2016-06-28 4 views
0

У меня есть два разных класса и вы хотите использовать класс в качестве параметра в функции Notify. ==== 'Параметры уведомления по почте КлассОбщий метод, который принимает класс как параметр

Friend Class MailClass 
     Friend NotifyHost As String 
     Friend NotifyPort As String  
End Class 

' Код ======================
Уведомление FTP Класс параметров

Friend Class FtpClass  
    Friend NotifyHost As String  
    Friend NotifyPort As String   
    End Class  


Friend Class ProcessNotification  
    'Notify on FTP Specified Email    
    Private Sub btnMailNotiFy_Click(ByVal sender As System.Object, ByVal e As  System.EventArgs)  
    Notify (ByRef mailAccount as MailClass)  
    End Sub 

    'Notify on FTP Specified Email 
    Private Sub btnFTPNotiFy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Notify (ByRef ftpAccount as FtpClass) 
    End Sub 

    ' Generic method to use for multiple class 
    Private Sub Notify(NO Idea ??) 
    ' ## Please Help ### 
    End Sub 
End Class 

Как сделать метод уведомления Generic?

ответ

0

Если память хранится, generics был частью .Net начиная с версии 2.0.
Вы ищете что-то вроде этого?

Private Sub Notify(Of T as Class)(ByVal agr as T) 
' do stuff 
End Sub 

Update

После нашего обсуждения в комментариях, вам необходимо создать интерфейс, который будет указать все свойства и методы, которые вы хотите использовать внутри универсального метода, а затем использовать его в качестве общее ограничение:

Friend Interface IMyInrteface 
    NotifyHost As String 
    NotifyPort As String 
End Interface 

Private Sub Notify(Of T as IMyInrteface)(ByRef agr as T) 
' do stuff 
End Sub 

конечно, все классы, которые вы отправить этот метод, должен реализовать интерфейс:

Friend Class MailClass 
    Implements IMyInrteface 
    Friend NotifyHost As String 
    Friend NotifyPort As String  
End Class 

Friend Class FtpClass  
    Implements IMyInrteface 
    Friend NotifyHost As String  
    Friend NotifyPort As String   
End Class 
+0

Я пробовал это, но получаю сообщение об ошибке «NotifyHost не является членом T» – monikapatel

+0

Пожалуйста, внесите свой вопрос, чтобы включить свой код сейчас. Кроме того, я вижу сообщение Notify должно принимать T ByRef, а не ByVal. –

+0

, но если я использую Notify (из T как класс) (учетная запись ByRef как T), не могу использовать account.NotifyHost, get error said NotifyHost не является членом T. Я хочу использовать общий метод для нескольких классов в качестве параметра, как могу ли я получить доступ к свойству класса с помощью вашего кода? – monikapatel

Смежные вопросы