DataContractBase.SetProperty メソッド

定義

オーバーロード

名前 説明
SetProperty<T>(T, T, String)

その性質を与えられた値に変更します。
新しい値が古い値と異なるかどうかを返します。

SetProperty<T>(T, T, String, Boolean)

その性質を与えられた値に変更します。
新しい値が古い値と異なるかどうかを返します。

SetProperty<T>(T, T, String)

その性質を与えられた値に変更します。
新しい値が古い値と異なるかどうかを返します。

protected void SetProperty<T>(ref T propertyBackingField, T newValue, string propertyName = default);
member this.SetProperty : 'T * 'T * string -> unit
Protected Sub SetProperty(Of T) (ByRef propertyBackingField As T, newValue As T, Optional propertyName As String = Nothing)

型パラメーター

T

プロパティの種類。

パラメーター

propertyBackingField
T

物件のバックフィールドが変わること。

newValue
T

その物件に新たな価値を与えること。

propertyName
String

プロパティの名前。 この値は、リフレクションやラムダ式を使ってプロパティ名を取得するよりも、パフォーマンスは劣る(しかしリファクタに適した)方法ではなく、メソッド呼び出し者によってハードコーディングされることが推奨されます。 ハードコーディングの欠点は、タイプミスやコピペのエラーに弱いことです。 しかし、この脆弱性は、すべてのデータコントラクトクラスのプロパティに対してリフレクションを用いてこのパラメータを検証するユニットテストによって緩和されています。 つまり、本番コードよりもユニットテストでリフレクションパフォーマンスのペナルティを支払う方が良いという考え方です。

適用対象

SetProperty<T>(T, T, String, Boolean)

その性質を与えられた値に変更します。
新しい値が古い値と異なるかどうかを返します。

protected bool SetProperty<T>(ref T propertyBackingField, T newValue, string propertyName = default, bool emptyStringIsNull = false);
member this.SetProperty : 'T * 'T * string * bool -> bool
Protected Function SetProperty(Of T) (ByRef propertyBackingField As T, newValue As T, Optional propertyName As String = Nothing, Optional emptyStringIsNull As Boolean = false) As Boolean

型パラメーター

T

プロパティの種類。

パラメーター

propertyBackingField
T

物件のバックフィールドが変わること。

newValue
T

その物件に新たな価値を与えること。

propertyName
String

プロパティの名前。 この値は、リフレクションやラムダ式を使ってプロパティ名を取得するよりも、パフォーマンスは劣る(しかしリファクタに適した)方法ではなく、メソッド呼び出し者によってハードコーディングされることが推奨されます。 ハードコーディングの欠点は、タイプミスやコピペのエラーに弱いことです。 しかし、この脆弱性は、すべてのデータコントラクトクラスのプロパティに対してリフレクションを用いてこのパラメータを検証するユニットテストによって緩和されています。 つまり、本番コードよりもユニットテストでリフレクションパフォーマンスのペナルティを支払う方が良いという考え方です。

emptyStringIsNull
Boolean

newValueが空文字列の場合にどうすべきかを示すフラグです。 この値をtrueに設定した場合、空文字列はnull値と同じ扱いとなります。 つまり、既存の値がnullで空文字列がこのフラグに設定されている場合、効果はありません。

返品

物件が変更されたかどうか。 つまり、与えられた新しい価値が物件の旧価値と異なるかどうかです。

適用対象