Hallo Community
Hab mir einen sehr einfachen Provider gemacht. Der funkst auch.
Das einzige was mich aber stört ist folgende Zeile in der Main.
Ich muss also die Variable raus nehmen, und kurz konvertieren, damit ich dann Zugriff auf die Methoden 'Start' habe.
Hat jemand einen Tipp wie man das machen könnte, ohne das die Variable rausgenommen werden muss, aber der Zugriff auf die Methoden Start trotzdem vorhanden sind? Oder soll ich da wirklich auf eines der Pattern zurückgreifen?
Danke für die Antwort.
Freundliche Grüsse
exc-jdbi
Spoiler anzeigen
Hab mir einen sehr einfachen Provider gemacht. Der funkst auch.
Das einzige was mich aber stört ist folgende Zeile in der Main.
Ich muss also die Variable raus nehmen, und kurz konvertieren, damit ich dann Zugriff auf die Methoden 'Start' habe.
Hat jemand einen Tipp wie man das machen könnte, ohne das die Variable rausgenommen werden muss, aber der Zugriff auf die Methoden Start trotzdem vorhanden sind? Oder soll ich da wirklich auf eines der Pattern zurückgreifen?
Danke für die Antwort.
Freundliche Grüsse
exc-jdbi
VB.NET-Quellcode
- Option Strict On
- Option Explicit On
- Public Module Module2
- Public Sub Main()
- Dim top = New TopProvider(1)
- 'top.Provider ' <<< Keinen Zugriff auf die Methoden 'Start'
- Dim provider = DirectCast(top.Provider, IProvider1)
- Console.WriteLine(provider.Start())
- Stop
- End Sub
- End Module
- Public Class TopProvider
- Public Provider As IProvider
- Sub New(_provider As Int32)
- Me.NewInit(_provider)
- End Sub
- Public Sub NewInit(_provider As Int32)
- If _provider = 1 Then Me.Provider = New Provider1 : Return
- If _provider = 2 Then Me.Provider = New Provider2 : Return
- Throw New TypeInitializationException(GetType(Provider1).FullName,
- New Exception(NameOf(_provider)))
- End Sub
- End Class
- Public Interface IProvider
- End Interface
- Public Interface IProvider1
- Inherits IProvider
- Function Start() As String
- End Interface
- Public Interface IProvider2
- Inherits IProvider
- Function Start() As String
- End Interface
- Friend Class Provider1
- Implements IProvider1
- Private Function IProvider1_Start() As String Implements IProvider1.Start
- Return NameOf(Provider1)
- End Function
- End Class
- Friend Class Provider2
- Implements IProvider2
- Public Function IProvider2_Start() As String Implements IProvider2.Start
- Return NameOf(Provider2)
- End Function
- End Class