58 lines
1.4 KiB
C#
58 lines
1.4 KiB
C#
namespace Upsilon.BaseTypes
|
|
{
|
|
public class ScriptBoolean : ScriptType
|
|
{
|
|
public ScriptBoolean(bool value)
|
|
{
|
|
Value = value;
|
|
}
|
|
|
|
public override TypeContainer Type => BaseTypes.Type.Boolean;
|
|
public override object ToCSharpObject()
|
|
{
|
|
return Value;
|
|
}
|
|
|
|
public override System.Type GetCSharpType()
|
|
{
|
|
return typeof(bool);
|
|
}
|
|
|
|
public bool Value { get; }
|
|
|
|
public static implicit operator bool(ScriptBoolean b)
|
|
{
|
|
return b.Value;
|
|
}
|
|
|
|
public static implicit operator ScriptBoolean(bool b)
|
|
{
|
|
return new ScriptBoolean(b);
|
|
}
|
|
|
|
public static ScriptBoolean operator ! (ScriptBoolean n)
|
|
{
|
|
return new ScriptBoolean(!n.Value);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return Value.ToString();
|
|
}
|
|
|
|
protected bool Equals(ScriptBoolean other)
|
|
{
|
|
return other.Value == Value;
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (ReferenceEquals(null, obj)) return false;
|
|
if (ReferenceEquals(this, obj)) return true;
|
|
if (obj is bool b) return b == Value;
|
|
if (obj.GetType() != this.GetType()) return false;
|
|
return Equals((ScriptBoolean) obj);
|
|
}
|
|
|
|
}
|
|
} |