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.
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
adlı
CompassRose
bir kullanıcı denetimi ekleyin.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 None
olarak 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 None
olmadığı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
.NET Desktop feedback