📄 proposeddata!1.cs
字号:
namespace Imps.Client.Core
{
using Imps.Utils;
using System;
public class ProposedData<T> : IDataCanProposed
{
private object _original;
private object _proposed;
public ProposedData()
{
this._original = ReflectionHelper.GetDefaultValue<T>();
}
public ProposedData(T val)
{
this._original = val;
}
public bool Equals(ProposedData<T> val)
{
if ((val != null) && object.Equals(this._original, val._original))
{
return object.Equals(this._proposed, val._proposed);
}
return false;
}
public override bool Equals(object other)
{
if (other is ProposedData<T>)
{
return this.Equals((ProposedData<T>) other);
}
if (other is T)
{
return object.Equals(this.Value, (T) other);
}
return false;
}
public override int GetHashCode()
{
int hashCode = this._original.GetHashCode();
if (this._proposed != null)
{
hashCode &= this._proposed.GetHashCode();
}
return hashCode;
}
public static explicit operator ProposedData<T>(T value)
{
return new ProposedData<T>(value);
}
public static implicit operator T(ProposedData<T> value)
{
return value.Value;
}
public void RemoveProposedValue()
{
this._proposed = null;
}
public override string ToString()
{
if (object.Equals(null, this.Value))
{
return string.Empty;
}
return this.Value.ToString();
}
public bool HasProposedValue
{
get
{
if (this._proposed != null)
{
return !object.Equals(this._proposed, this._original);
}
return false;
}
}
object IDataCanProposed.ProposedValue
{
get
{
return this.ProposedValue;
}
}
public T OriginalValue
{
get
{
return (T) this._original;
}
}
public T ProposedValue
{
get
{
return (this._proposed ?? ReflectionHelper.GetDefaultValue<T>());
}
set
{
this._proposed = value;
}
}
public T Value
{
get
{
return (T) (this._proposed ?? this._original);
}
set
{
this._proposed = value;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -