Wie muss ich das richtig übersetzen?

  • C#
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Runshak.

    Wie muss ich das richtig übersetzen?

    Das ist meine vb.net Klasse:

    VB.NET-Quellcode

    1. ​Namespace HilfeTools
    2. Public MustInherit Class Chilfe
    3. Implements INotifyPropertyChanged
    4. Private _values As New Dictionary(Of String, Object)()
    5. Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    6. Public Sub NotifyPropertyChanged(ByVal info As String)
    7. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    8. End Sub
    9. End Class
    10. End Namespace


    diese würde ich sehr gerne in C# übersetzen...aber ich hab einen Fehler drin, den ich nicht weg bekomme...


    C#-Quellcode

    1. ​namespace HilfeTools
    2. {
    3. public abstract class Chilfe : INotifyPropertyChanged
    4. {
    5. private Dictionary<string, object> _values = new Dictionary<string, object>();
    6. public event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged;
    7. public void NotifyPropertyChanged(string info)
    8. {
    9. if (PropertyChanged != null) {
    10. PropertyChanged(this, new PropertyChangedEventArgs(info));
    11. }
    12. }
    13. }
    14. }


    (Zeile 7) "Der Typ- oder Namespacename "PropertyChanged" konnte nicht gefunden werden."

    (Zeile 10/11) "Der Name "PropertyChanged" ist im aktuellen Kontext nicht vorhanden"
    Moin,

    das was Du da machst, kann da wohl so nicht funktionieren, da Du das Interface implementieren musst und dann einen Zugriff auf das Event hast, weil das dann deklariert wird.
    Edit: Huch, hast Du ja ganz oben, dann lass das ​INotifyPropertyChanged davor mal weg.

    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 :!:

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

    Der Interface-Name muss in C# beim Implementieren nur vor den Membernamen gesetzt werden, wenn explizit implementiert wird. Bei einer normalen Implementierung wird nur der Membername erwartet (gleichnamige Member implementieren automatisch das Interacemember).
    Danke für eure Antworten! Es klappt und ich glaube, dass ich es verstanden habe...

    C#-Quellcode

    1. ​namespace HilfeTools
    2. {
    3. public abstract class Chilfe : INotifyPropertyChanged
    4. {
    5. private Dictionary<string, object> _values = new Dictionary<string, object>();
    6. public event PropertyChangedEventHandler PropertyChanged;
    7. public void NotifyPropertyChanged(string info)
    8. {
    9. if (PropertyChanged != null) {
    10. PropertyChanged(this, new PropertyChangedEventArgs(info));
    11. }
    12. }
    13. }
    14. }