Use Reset e ShouldSerialize para controlar uma propriedade (Windows Forms .NET)
Neste artigo, você aprenderá a criar os métodos Reset
e ShouldSerialize
são métodos opcionais que você pode fornecer para uma propriedade, se a propriedade não tiver um valor padrão simples. Se a propriedade tiver um valor padrão simples, você deverá aplicar o DefaultValueAttribute e fornecer o valor padrão ao construtor da classe de atributo. Qualquer um desses mecanismos habilita os seguintes recursos no designer:
- A propriedade fornece indicação visual no navegador de propriedades se ela tiver sido modificada de seu valor padrão.
- O usuário pode clicar com o botão direito do mouse na propriedade e escolher Redefinir para restaurar a propriedade ao seu valor padrão.
- O designer gera um código mais eficiente.
Para obter mais informações sobre propriedades, consulte Reset e ShouldSerialize.
Código de suporte
Este artigo demonstra os métodos Reset
e ShouldSerialize
através da criação de um controlo de rosa-dos-ventos. Se estiver a trabalhar com o seu próprio controlo de utilizador, pode ignorar esta secção.
Adicione a seguinte enumeração ao seu código:
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
Adicione um controle de usuário chamado
CompassRose
.Adicione uma propriedade chamada
Direction
do tipoDirections
ao controle de usuário.public Directions Direction { get; set; } = Directions.None;
Public Property Direction As Directions = Directions.None
Redefinir
O método Reset<PropertyName>
redefine a propriedade <PropertyName>
correspondente para seu valor padrão.
O código a seguir redefine a propriedade Direction
para None
, que é considerado o valor padrão para o controle rosa dos ventos.
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
DeveSerializar
O método ShouldSerialize<PropertyName>
retorna um valor booleano que indica se a propriedade de suporte foi ou não alterada de seu valor padrão e deve ser serializada no código do designer.
O código a seguir retorna true quando a propriedade Direction
não é igual a None
, indicando que uma direção foi escolhida:
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
Exemplo
O código a seguir mostra os métodos Reset
e ShouldSerialize
para a propriedade 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
.NET Desktop feedback