Kann mir jemand bei einer Fehlermeldung helfen?

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Solaris.

    Kann mir jemand bei einer Fehlermeldung helfen?

    Hallo Leute und danke fürs reinschauen...

    Komme hierbei echt nicht weiter... Vielleicht hilft mir einer...

    Habe ein INterface:

    VB.NET-Quellcode

    1. Interface IB
    2. ReadOnly Property Value As String
    3. ReadOnly Property RawData As String
    4. ReadOnly Property Errors() As List(Of String)
    5. End Interface


    will es in der Klasse mithaben:

    VB.NET-Quellcode

    1. Class Code
    2. Inherits BcCom
    3. Implements IB
    4. ...
    5. ...


    Kriege Fehlermeldung:
    Fehler 1 Class "Code" muss "ReadOnly Property Value As String" für die IB-Schnittstelle implementieren. Die implementierende Eigenschaft muss übereinstimmende ReadOnly- oder WriteOnly-Spezifizierer aufweisen.


    Frage, was genau will er von mir hier? ?(

    Danke im Voraus.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „EugenIS“ ()

    Von einem Interface erbt man keine Properties oder Methoden. Das merkt man spätestens dann, wenn man Funktionen schreiben will, aber der Compiler ständig meckert. Interfaces sind dazu da zu sagen, dass jede Klasse, die dieses Interface Implementiert folgende Properties und Methoden hat. Die Implementierung, also das Ausschreiben des Codes von Properties und Methoden musst du jedoch für jede Klasse die dies Implementiert selbst erledigen. Eine kleine Hilfe, mach mal nen Rechtsklick auf BcCom in deiner Klasse Code und drücke da mal auf "Interface Implementieren"

    Frage:
    Was genau willst du erreichen? Sind dazu wirklich Interfaces notwendig?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    EugenIS schrieb:

    was genau will er von mir hier?
    So was:

    VB.NET-Quellcode

    1. Class CodeX
    2. Implements IB
    3. Dim vv As String = "bla"
    4. Dim rd As String = "blabla"
    5. ReadOnly Property Value As String Implements IB.Value
    6. Get
    7. Return vv
    8. End Get
    9. End Property
    10. ReadOnly Property RawData As String Implements IB.RawData
    11. Get
    12. Return rd
    13. End Get
    14. End Property
    15. ReadOnly Property Errors() As List(Of String) Implements IB.Errors
    16. Get
    17. Dim xx = New List(Of String)
    18. xx.Add("1")
    19. xx.Add("2")
    20. xx.Add("3")
    21. Return xx
    22. End Get
    23. End Property
    24. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    EaranMaleasi: bin am übersetzen von c# auf vb.net.... da ist es halt drin... (leider funktioniert es nicht mit automatisch generieren...)

    RodFromGermany: dann erzählt er mir dass es die signatur schon mehrfach gibt...




    AAAA, jetzt hab ich es... danke euch beiden...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EugenIS“ ()

    Zunächst sollte man klären, warum Du Schnittstellen benutzt, wenn Du nicht weißt, dass man sie entsprechend implementieren muss, denn das ist ja der Sinn...
    @RodFromGermany hat es Dir ja gezeigt. Alternativ kannst Du auch auf den Interfacenamen gehen, das Popup öffnen und dort "Implementieren" klicken.

    Und wenn es die Signatur schon mehrfach gibt, dann hast Du diese Methode halt nochmal in der Klasse genauso eingebaut.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Jetzt muss ich nochmal fragen: Was genau hattest Du eigentlich vor? Wenn Du die Schnittstelle implementierst und nicht alle deren Funktionen/Properties übernimmst und einbaust, dann kommt der Fehler ganz oben. Das ist ja logisch. Daher verstehe ich nicht ganz, warum Du dann Interfaces hier nutzt, wenn der Einsatz nicht ganz klar ist.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: