DataContractBase.SetProperty Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
SetProperty<T>(T, T, String) |
Changes the property to the given value. |
SetProperty<T>(T, T, String, Boolean) |
Changes the property to the given value. |
SetProperty<T>(T, T, String)
Changes the property to the given value.
Returns whether the new value is different from the old value.
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)
Type Parameters
- T
The property type.
Parameters
- propertyBackingField
- T
The backing field of the property to change.
- newValue
- T
The new value to give to the property.
- propertyName
- String
The name of the property. It is recommended that this value be hardcoded by the method caller, rather than using a less performant (but more refactor-friendly) approach like using reflection or lambda expressions to get the property name. The downside of hardcoding is vulnerability to typo and copy-paste type errors. However, this vulnerability is mitigated by unit tests that use reflection to verify this parameter for all data contract class properties. The idea being that it is better to pay the reflection performance penalty in the unit tests, rather than in production code.
Applies to
SetProperty<T>(T, T, String, Boolean)
Changes the property to the given value.
Returns whether the new value is different from the old value.
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
Type Parameters
- T
The property type.
Parameters
- propertyBackingField
- T
The backing field of the property to change.
- newValue
- T
The new value to give to the property.
- propertyName
- String
The name of the property. It is recommended that this value be hardcoded by the method caller, rather than using a less performant (but more refactor-friendly) approach like using reflection or lambda expressions to get the property name. The downside of hardcoding is vulnerability to typo and copy-paste type errors. However, this vulnerability is mitigated by unit tests that use reflection to verify this parameter for all data contract class properties. The idea being that it is better to pay the reflection performance penalty in the unit tests, rather than in production code.
- emptyStringIsNull
- Boolean
A flag that indicates what to do if newValue happens to be an empty string. If this value is set to true, empty strings are treated the same as null values. That is to say that if the existing value is null and an empty string is set with this flag on, it will have no effect.
Returns
Whether the property was changed. I.e, whether the given new value is different from the property's old value.