Freigeben über


Verwenden von Reset und ShouldSerialize zum Steuern einer Eigenschaft

In diesem Artikel erfahren Sie, wie Sie die Reset<PropertyName> und ShouldSerialize<PropertyName> Methoden zum Verwalten einer Eigenschaft für das Fenster Eigenschaften in Visual Studio erstellen. Reset und ShouldSerialize sind optionale Methoden, die Sie für eine Eigenschaft bereitstellen können, wenn die Eigenschaft keinen einfachen Standardwert aufweist. Wenn die Eigenschaft über einen einfachen Standardwert verfügt, sollten Sie den DefaultValueAttribute anwenden und stattdessen den Standardwert an den Konstruktor der Attributklasse übergeben. Eine dieser Mechanismen ermöglicht die folgenden Features im Designer:

  • Die Eigenschaft zeigt im Eigenschaftenbrowser visuelle Hinweise an, wenn ihr Standardwert geändert wurde.
  • Die benutzende Person kann mit der rechten Maustaste auf die Eigenschaft klicken und Zurücksetzen auswählen, um die Eigenschaft auf ihren Standardwert zurückzusetzen.
  • Der Designer generiert effizienteren Code.

Weitere Informationen zu Eigenschaften finden Sie unter Reset und ShouldSerialize.

Unterstützender Code

In diesem Artikel werden die Reset und ShouldSerialize Methoden durch Erstellen eines Windrosen-Steuerelements veranschaulicht. Wenn Sie mit Ihrem eigenen Benutzersteuerelement arbeiten, können Sie diesen Abschnitt überspringen.

  1. Fügen Sie dem Code die folgende Enumeration hinzu:

    public enum Directions
    {
        None,
        North,
        NorthEast,
        East,
        SouthEast,
        South,
        SouthWest,
        West,
        NorthWest,
    }
    
    Public Enum Directions
        None
        North
        NorthEast
        East
        SouthEast
        South
        SouthWest
        West
        NorthWest
    End Enum
    
  2. Fügen Sie ein Benutzersteuerelement mit dem Namen CompassRosehinzu.

  3. Fügen Sie dem Benutzersteuerelement eine Eigenschaft mit dem Namen Direction des Typs Directions hinzu.

    public Directions Direction { get; set; } = Directions.None;
    
    Public Property Direction As Directions = Directions.None
    

Zurücksetzen

Die Reset<PropertyName>-Methode setzt die entsprechende <PropertyName>-Eigenschaft auf den Standardwert zurück.

Mit dem folgenden Code wird die Direction-Eigenschaft auf None zurückgesetzt, was als Standardwert für das Windrosen-Steuerelement gilt:

private void ResetDirection() =>
    Direction = Directions.None;
Private Sub ResetDirection()
    Direction = Directions.None
End Sub

ShouldSerialize

Die ShouldSerialize<PropertyName>-Methode gibt einen booleschen Wert zurück, der angibt, ob sich die Sicherungseigenschaft vom Standardwert geändert hat und in den Code des Designers serialisiert werden soll.

Der folgende Code gibt "true" zurück, wenn die eigenschaft Direction nicht gleich Noneist und angibt, dass eine Richtung ausgewählt wurde:

private bool ShouldSerializeDirection() =>
    Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
    Return Direction <> Directions.None
End Function

Beispiel

Der folgende Code zeigt die methoden Reset und ShouldSerialize für die eigenschaft Direction:

public partial class CompassRose : UserControl
{
    public Directions Direction { get; set; } = Directions.None;

    public CompassRose() =>
        InitializeComponent();

    private void ResetDirection() =>
        Direction = Directions.None;

    private bool ShouldSerializeDirection() =>
        Direction != Directions.None;
}
Public Class CompassRose

    Public Property Direction As Directions = Directions.None

    Private Sub ResetDirection()
        Direction = Directions.None
    End Sub

    Private Function ShouldSerializeDirection() As Boolean
        Return Direction <> Directions.None
    End Function

End Class