2016-06-28 6 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 

알림 방법 일반 사항?

답변

0

메모리가 작동하는 경우 generics은 2.0 이후 버전의 일부입니다.
이 같은 것을 찾고 계십니까?

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

업데이트

코멘트에 우리의 논의에 따라, 당신은 당신이 당신의 일반적인 방법 내에서 사용하고자하는 모든 속성과 메소드를 지정합니다 인터페이스를 만든 다음으로 사용해야 일반적인 제약 :

:

물론
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 

, 모든 클래스는이 방법으로 전송 인터페이스를 구현해야합니다 0

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

지금 코드를 포함하도록 질문을 편집하십시오. 또한 알림 메시지가 T ByRef가 아니라 ByVal을 받아 들여야한다는 것을 알았습니다. –

+0

하지만 T (클래스 T)의 ByRef 계정의 Notify를 사용하는 경우 account.NotifyHost를 사용할 수 없다는 오류가 발생합니다. NotifyHost는 T의 멤버가 아닙니다. 매개 변수로 여러 클래스에 제네릭 메소드를 사용하고 싶습니다. 코드를 사용하여 클래스 속성에 액세스 할 수 있습니까 ?? – monikapatel

관련 문제