public override int GetHashCode() { switch (valueType) { case nullValueType: return(0); case trueValueType: return(true.GetHashCode()); case falseValueType: return(false.GetHashCode()); case doubleValueType: return(doubleValue.GetHashCode()); case longValueType: return(longValue.GetHashCode()); case stringValueType: return(stringValue.GetHashCode()); case objectValueType: return(objectValue.GetHashCode()); default: return(scriptValue.GetHashCode()); } }