none
Getter&Setter nicht abrufbar in WPF Projekt RRS feed

  • Frage

  • Hallo Leute,

    VS zeigt mir die im Anhang aufgezeigte Meldung. Beim Debuggen stellt sich tatsächlich raus, dass dem integer nix zugewiesen wird.Warum nicht? Ich weise der Propertie durch 

    MainWindow.counter=0;
    MainWindow.counter++;

    doch einen Wert zu. Warum wird das nicht verarbeitet? In WinForm Projekten ist mir so ein Verhalten noch nie aufgefallen. Wie kann das sein? Die obigen zwei Zeilen werden beim Debugging übersprungen.


    • Bearbeitet tklustig Sonntag, 6. Oktober 2019 13:38
    Sonntag, 6. Oktober 2019 13:13

Antworten

Alle Antworten

  • Hi,

    abgesehen davon, dass ich nicht verstehe, warum Du eine statische Eigenschaft verwenden willst, setzt Du den Wert im setter immer auf 0, niemals auf den Wert, der über MainWindow.counter = <zahl> übergeben wird. Daher wird da auch niemals was anderes drinstehen als 0.

    Ich nehme mal an, Du liest im getter die Variable value aus? Falls ja, warum?

    Schreib doch einfach:

    private int Counter { get; set; }

    und setz den Wert dann über:

    this.Counter = 4711;

    oder

    this.Counter += 1;


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Sonntag, 6. Oktober 2019 14:05
    Moderator
  • Das ist mir alles klar. Das Ding ist jedoch: Der Wert wird nicht aufgerufen. Egal, wie ich es mache, es kommt die im ersten Screenshot, oben,zu Beginn aufgezeigte Meldung. Obgleich ich im Debugging an die entsprechende Stelle komme, der Wert wird nicht eingeblendet. Auch die MessageBox wird nicht angezeigt....

    


    • Bearbeitet tklustig Montag, 7. Oktober 2019 17:38
    Montag, 7. Oktober 2019 16:58
  • Hallo,

    public static int Counter { get { return value; } set { value = 0; } }
    private static int value = 0;//Dieses variabel ist das Problem

    Du solltest wissen das das value im der Eigenschaft Couter nicht das selbe ist value wie in der variabel.

    Den Namen value sollte man auch nicht verwendet. Wenn Du unbedingt diesen Namen nutzen willst, schreib zumindest _value. In diesem Kontext ist value ein Schlüsselwort

    C#-Schlüsselwörter



    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings




    Montag, 7. Oktober 2019 17:48
  • Habe das jetzt so gemacht:

    private int Counter {get;set;}
    .
    .
    .
    this.Counter += 1;
    .
    .
    .

    Jetzt funktionierts. Dass value im Setter ein Schlüsselwort ist, war mir nicht klar. Jetzt weiß ich das und werde es nie wieder so implementieren!

    Mittwoch, 9. Oktober 2019 16:18