Usare Reset e ShouldSerialize per controllare una proprietà (Windows Form .NET)

Questo articolo illustra come creare i Reset<PropertyName> metodi e ShouldSerialize<PropertyName> per gestire una proprietà per la finestra Proprietà in Visual Studio. Reset e ShouldSerialize sono metodi facoltativi che è possibile fornire per una proprietà, se la proprietà non ha un valore predefinito semplice. Se la proprietà ha un valore predefinito semplice, è necessario applicare e DefaultValueAttribute fornire il valore predefinito al costruttore della classe di attributi. Uno di questi meccanismi abilita le funzionalità seguenti nella finestra di progettazione:

  • La proprietà fornisce indicazioni visive nel browser delle proprietà se è stata modificata dal valore predefinito.
  • L'utente può fare clic con il pulsante destro del mouse sulla proprietà e scegliere Reimposta per ripristinare il valore predefinito della proprietà.
  • La finestra di progettazione genera codice più efficiente.

Per altre informazioni sulle proprietà, vedere Reset and ShouldSerialize.

Codice di supporto

Questo articolo illustra i Reset metodi e ShouldSerialize creando un controllo rosa bussola. Se si usa il proprio controllo utente, è possibile ignorare questa sezione.

  1. Aggiungere l'enumerazione seguente al codice:

    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. Aggiungere un controllo utente denominato CompassRose.

  3. Aggiungere una proprietà denominata Direction di tipo Directions al controllo utente.

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

Reimposta

Il Reset<PropertyName> metodo reimposta la proprietà corrispondente <PropertyName> sul valore predefinito.

Il codice seguente reimposta la Direction proprietà su None, che viene considerato il valore predefinito per il controllo rose della bussola:

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

ShouldSerialize

Il ShouldSerialize<PropertyName> metodo restituisce un valore booleano che indica se la proprietà di backup è stata modificata dal valore predefinito e deve essere serializzata nel codice della finestra di progettazione.

Il codice seguente restituisce true quando la Direction proprietà non è uguale Nonea , a indicare che è stata scelta una direzione:

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

Esempio

Il codice seguente illustra i Reset metodi e ShouldSerialize per la Direction proprietà :

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