この記事では、Visual Studio の Reset<PropertyName>
] ウィンドウのプロパティを管理するShouldSerialize<PropertyName>
メソッドと メソッドを作成する方法について説明します。
Reset
ShouldSerialize
は、プロパティに単純な既定値がない場合にプロパティに指定できる省略可能なメソッドです。 プロパティに単純な既定値がある場合は、DefaultValueAttribute を適用し、代わりに属性クラスコンストラクターに既定値を指定する必要があります。 これらのメカニズムのいずれかを使用すると、デザイナーで次の機能が有効になります。
- このプロパティは、既定値から変更された場合に、プロパティ ブラウザーで視覚的な表示を提供します。
- ユーザーは、プロパティを右クリックし、[
リセット] を選択して、プロパティを既定値に戻すことができます。 - デザイナーは、より効率的なコードを生成します。
プロパティの詳細については、「 リセット」および「ShouldSerialize」を参照してください。
サポート コード
この記事では、コンパス ローズ コントロールを作成して Reset
メソッドと ShouldSerialize
メソッドについて説明します。 独自のユーザー コントロールを使用している場合は、このセクションをスキップできます。
コードに次の列挙体を追加します。
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
CompassRose
という名前のユーザー コントロールを追加します。Direction
型のDirections
という名前のプロパティをユーザー コントロールに追加します。public Directions Direction { get; set; } = Directions.None;
Public Property Direction As Directions = Directions.None
リセット
Reset<PropertyName>
メソッドは、対応する<PropertyName>
プロパティを既定値にリセットします。
次のコードでは、 Direction
プロパティを None
にリセットします。これはコンパス ローズ コントロールの既定値と見なされます。
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
ShouldSerialize
ShouldSerialize<PropertyName>
メソッドは、バッキング プロパティが既定値から変更され、デザイナーのコードにシリアル化される必要があるかどうかを示すブール値を返します。
次のコードは、 Direction
プロパティが None
と等しくない場合に true を返し、方向が選択されたことを示します。
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
例
次のコードは、Reset
プロパティのShouldSerialize
メソッドと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