// -= /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public void SubtractEqual(Kirikiri.Tjs2.Variant rhs) { if (mObject is int && rhs.mObject is int) { mObject = Sharpen.Extensions.ValueOf(((int)mObject) - ((int)rhs.mObject)); return; } Number l = AsNumber(); Number r = rhs.AsNumber(); if (l.IsInt() && r.IsInt()) { mObject = Sharpen.Extensions.ValueOf(((int)l) - ((int)r)); } else { mObject = (l - r); } }
// *= /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public void MultiplyEqual(Kirikiri.Tjs2.Variant rhs) { if (mObject is int && rhs.mObject is int) { mObject = Sharpen.Extensions.ValueOf(((int)mObject) * ((int)rhs.mObject)); return; } Number l = AsNumber(); Number r = rhs.AsNumber(); if (l.IsInt() && r.IsInt()) { mObject = Sharpen.Extensions.ValueOf(l * r); return; } mObject = (l * r); }
// - /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public Kirikiri.Tjs2.Variant Subtract(Kirikiri.Tjs2.Variant val) { if (mObject is int && val.mObject is int) { int result = ((int)mObject) - ((int)val.mObject); return new Kirikiri.Tjs2.Variant(result); } Number n1 = AsNumber(); Number n2 = val.AsNumber(); if (n1.IsInt() && n2.IsInt()) { int result = n1 - n2; return new Kirikiri.Tjs2.Variant(result); } else { double result = n1 - n2; return new Kirikiri.Tjs2.Variant(result); } }
// * /// <exception cref="Kirikiri.Tjs2.VariantException"></exception> public Kirikiri.Tjs2.Variant Multiply(Kirikiri.Tjs2.Variant val) { if (mObject == null || val.mObject == null) { return new Kirikiri.Tjs2.Variant(0); } if ((mObject is int) && (val.mObject is int)) { int result = ((int)mObject) * ((int)val.mObject); return new Kirikiri.Tjs2.Variant(result); } Number n1 = AsNumber(); Number n2 = val.AsNumber(); if (n1.IsInt() && n2.IsInt()) { int result = n1 * n2; return new Kirikiri.Tjs2.Variant(result); } else { double result = n1 * n2; return new Kirikiri.Tjs2.Variant(result); } }