Aracılığıyla paylaş


Bir özelliği denetlemek için Reset ve ShouldSerialize kullanma (Windows Forms .NET)

Bu makalede, Visual Studio'da Özellikler penceresinin Reset<PropertyName> özelliğini yönetmek için ve ShouldSerialize<PropertyName> yöntemlerini oluşturmayı öğreneceksiniz. Reset ve ShouldSerialize özelliğin basit bir varsayılan değeri yoksa, bir özellik için sağlayabileceğiniz isteğe bağlı yöntemlerdir. Özelliğin basit bir varsayılan değeri varsa, öğesini uygulamanız DefaultValueAttribute ve bunun yerine öznitelik sınıfı oluşturucusunun varsayılan değerini sağlamanız gerekir. Bu mekanizmalardan biri tasarımcıda aşağıdaki özellikleri etkinleştirir:

  • özelliği, varsayılan değerinden değiştirilmişse özellik tarayıcısında görsel gösterge sağlar.
  • Kullanıcı özelliğe sağ tıklayıp Sıfırla'yı seçerek özelliği varsayılan değerine geri yükleyebilir.
  • Tasarımcı daha verimli kod oluşturur.

Özellikler hakkında daha fazla bilgi için bkz . Sıfırlama ve ShouldSerialize.

Destekleyici kod

Bu makalede pusula gül denetimi oluşturarak ve ShouldSerialize yöntemleri gösterilmektedirReset. Kendi kullanıcı denetiminizle çalışıyorsanız bu bölümü atlayabilirsiniz.

  1. Kodunuza aşağıdaki numaralandırmayı ekleyin:

    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. adlı CompassRosebir kullanıcı denetimi ekleyin.

  3. Kullanıcı denetimine türü Directions adlı Direction bir özellik ekleyin.

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

Reset

yöntemi, Reset<PropertyName> ilgili <PropertyName> özelliği varsayılan değerine sıfırlar.

Aşağıdaki kod, pusula gül denetimi için varsayılan değer olarak kabul edilen özelliğini Noneolarak sıfırlarDirection:

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

ShouldSerialize

yöntemi, ShouldSerialize<PropertyName> backing özelliğinin varsayılan değerinden değişip değişmediğini ve tasarımcının koduna seri hale getirilip getirilmeyeceğini belirten bir boole değeri döndürür.

Özelliği eşit Noneolmadığında Direction aşağıdaki kod true değerini döndürür ve bir yönün seçildiğini belirtir:

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

Örnek

Aşağıdaki kod özelliği için Reset Direction ve ShouldSerialize yöntemlerini gösterir:

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