protected IntOrStr(SerializationInfo info, StreamingContext context) { guidForHash = info.GetValue <Guid>(nameof(guidForHash)); numValue = info.GetInt32(nameof(numValue)); strValue = info.GetValue <string>(nameof(strValue)); InstanceIntOrStrType = IntOrStrType.FromId(info.GetValue <string>(nameof(InstanceIntOrStrType))); }
/// <summary> /// 数値、文字列を引数で与えられたインスタンスの内容で上書きする。 /// </summary> /// <param name="value">設定値</param> public void Merge(IntOrStr value) { if (value.HasInt) { numValue = value.ToInt(); } if (value.HasStr) { strValue = value.ToStr(); } if ((HasInt || value.HasInt) && (HasStr || value.HasStr)) { InstanceIntOrStrType = IntOrStrType.IntAndStr; } else if (HasInt || value.HasInt) { InstanceIntOrStrType = IntOrStrType.Int; } else if (HasStr || value.HasStr) { InstanceIntOrStrType = IntOrStrType.Str; } else { InstanceIntOrStrType = IntOrStrType.None; } NotifyPropertyChanged(NotifyPropertyChangedName); }
/// <summary> /// <pre>すでに数値を保有している場合、両方所有状態にする</pre> /// <pre>文字列を保有している場合はその値を上書きする。</pre> /// </summary> /// <param name="value">設定値</param> public void Merge(string value) { InstanceIntOrStrType = HasInt ? IntOrStrType.IntAndStr : IntOrStrType.Str; strValue = value; NotifyPropertyChanged(NotifyPropertyChangedName); }
/// <summary> /// <pre>すでに文字列を保有している場合、両方所有状態にする</pre> /// <pre>数値を保有している場合はその値を上書きする。</pre> /// </summary> /// <param name="value">設定値</param> public void Merge(int value) { InstanceIntOrStrType = HasStr ? IntOrStrType.IntAndStr : IntOrStrType.Int; numValue = value; NotifyPropertyChanged(NotifyPropertyChangedName); }