/// <summary>
/// Selector class, which is related by Control State, it is base class for other Selector.
/// </summary>
- /// <typeparam name="T">The property type of the selector. if it's reference type, it should be of type <see cref="ICloneable"/> that implement deep copy in <see cref="ICloneable.Clone"/>.</typeparam>
/// <since_tizen> 6 </since_tizen>
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class Selector<T> : StateValueCollection<T>
{
- private readonly bool isCloneable = typeof(ICloneable).IsAssignableFrom(typeof(T));
+ private readonly bool cloneable = typeof(T).IsAssignableFrom(typeof(ICloneable));
+
/// <since_tizen> 6 </since_tizen>
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
public static implicit operator Selector<T>(T value)
[EditorBrowsable(EditorBrowsableState.Never)]
public Selector(T value) : this()
{
- All = isCloneable ? (T)((ICloneable)value)?.Clone() : value;
+ All = cloneable ? (T)((ICloneable)value)?.Clone() : value;
}
/// Copy constructor
Clone(value);
}
+
/// <summary>
/// All State.
/// </summary>
/// <summary>
/// Clone itself.
- /// If type T implements ISelectorItem, it calls Clone() method to clone values, otherwise use operator=.
+ /// If type T implements ICloneable, it calls Clone() method to clone values, otherwise use operator=.
/// </summary>
/// <since_tizen> 6 </since_tizen>
/// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
{
Clear();
- if (isCloneable)
+ if (cloneable)
{
All = (T)((ICloneable)other.All)?.Clone();
foreach (var item in other.StateValueList)