509 lines
18 KiB
C#
509 lines
18 KiB
C#
using CPF.Mac.ObjCRuntime;
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace CPF.Mac.Foundation
|
|
{
|
|
[Register("NSDecimalNumber", true)]
|
|
public class NSDecimalNumber : NSNumber
|
|
{
|
|
private static readonly IntPtr selDecimalValueHandle = Selector.GetHandle("decimalValue");
|
|
|
|
private static readonly IntPtr selZeroHandle = Selector.GetHandle("zero");
|
|
|
|
private static readonly IntPtr selOneHandle = Selector.GetHandle("one");
|
|
|
|
private static readonly IntPtr selMinimumDecimalNumberHandle = Selector.GetHandle("minimumDecimalNumber");
|
|
|
|
private static readonly IntPtr selMaximumDecimalNumberHandle = Selector.GetHandle("maximumDecimalNumber");
|
|
|
|
private static readonly IntPtr selNotANumberHandle = Selector.GetHandle("notANumber");
|
|
|
|
private static readonly IntPtr selDefaultBehaviorHandle = Selector.GetHandle("defaultBehavior");
|
|
|
|
private static readonly IntPtr selSetDefaultBehavior_Handle = Selector.GetHandle("setDefaultBehavior:");
|
|
|
|
private static readonly IntPtr selDoubleValueHandle = Selector.GetHandle("doubleValue");
|
|
|
|
private static readonly IntPtr selInitWithMantissaExponentIsNegative_Handle = Selector.GetHandle("initWithMantissa:exponent:isNegative:");
|
|
|
|
private static readonly IntPtr selInitWithDecimal_Handle = Selector.GetHandle("initWithDecimal:");
|
|
|
|
private static readonly IntPtr selInitWithString_Handle = Selector.GetHandle("initWithString:");
|
|
|
|
private static readonly IntPtr selInitWithStringLocale_Handle = Selector.GetHandle("initWithString:locale:");
|
|
|
|
private static readonly IntPtr selDescriptionWithLocale_Handle = Selector.GetHandle("descriptionWithLocale:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByAdding_Handle = Selector.GetHandle("decimalNumberByAdding:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByAddingWithBehavior_Handle = Selector.GetHandle("decimalNumberByAdding:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberBySubtracting_Handle = Selector.GetHandle("decimalNumberBySubtracting:");
|
|
|
|
private static readonly IntPtr selDecimalNumberBySubtractingWithBehavior_Handle = Selector.GetHandle("decimalNumberBySubtracting:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByMultiplyingBy_Handle = Selector.GetHandle("decimalNumberByMultiplyingBy:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByMultiplyingByWithBehavior_Handle = Selector.GetHandle("decimalNumberByMultiplyingBy:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByDividingBy_Handle = Selector.GetHandle("decimalNumberByDividingBy:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByDividingByWithBehavior_Handle = Selector.GetHandle("decimalNumberByDividingBy:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByRaisingToPower_Handle = Selector.GetHandle("decimalNumberByRaisingToPower:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByRaisingToPowerWithBehavior_Handle = Selector.GetHandle("decimalNumberByRaisingToPower:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByMultiplyingByPowerOf10_Handle = Selector.GetHandle("decimalNumberByMultiplyingByPowerOf10:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByMultiplyingByPowerOf10WithBehavior_Handle = Selector.GetHandle("decimalNumberByMultiplyingByPowerOf10:withBehavior:");
|
|
|
|
private static readonly IntPtr selDecimalNumberByRoundingAccordingToBehavior_Handle = Selector.GetHandle("decimalNumberByRoundingAccordingToBehavior:");
|
|
|
|
private static readonly IntPtr selCompare_Handle = Selector.GetHandle("compare:");
|
|
|
|
private static readonly IntPtr class_ptr = Class.GetHandle("NSDecimalNumber");
|
|
|
|
private static object __mt_Zero_var_static;
|
|
|
|
private static object __mt_One_var_static;
|
|
|
|
private static object __mt_MinValue_var_static;
|
|
|
|
private static object __mt_MaxValue_var_static;
|
|
|
|
private static object __mt_NaN_var_static;
|
|
|
|
private static object __mt_DefaultBehavior_var_static;
|
|
|
|
public override IntPtr ClassHandle => class_ptr;
|
|
|
|
public new virtual NSDecimal NSDecimalValue
|
|
{
|
|
[Export("decimalValue")]
|
|
get
|
|
{
|
|
NSDecimal retval;
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.NSDecimal_objc_msgSend_stret(out retval, base.Handle, selDecimalValueHandle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.NSDecimal_objc_msgSendSuper_stret(out retval, base.SuperHandle, selDecimalValueHandle);
|
|
}
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
public static NSDecimalNumber Zero
|
|
{
|
|
[Export("zero")]
|
|
get
|
|
{
|
|
return (NSDecimalNumber)(__mt_Zero_var_static = (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selZeroHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSDecimalNumber One
|
|
{
|
|
[Export("one")]
|
|
get
|
|
{
|
|
return (NSDecimalNumber)(__mt_One_var_static = (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selOneHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSDecimalNumber MinValue
|
|
{
|
|
[Export("minimumDecimalNumber")]
|
|
get
|
|
{
|
|
return (NSDecimalNumber)(__mt_MinValue_var_static = (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selMinimumDecimalNumberHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSDecimalNumber MaxValue
|
|
{
|
|
[Export("maximumDecimalNumber")]
|
|
get
|
|
{
|
|
return (NSDecimalNumber)(__mt_MaxValue_var_static = (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selMaximumDecimalNumberHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSDecimalNumber NaN
|
|
{
|
|
[Export("notANumber")]
|
|
get
|
|
{
|
|
return (NSDecimalNumber)(__mt_NaN_var_static = (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selNotANumberHandle)));
|
|
}
|
|
}
|
|
|
|
public static NSObject DefaultBehavior
|
|
{
|
|
[Export("defaultBehavior")]
|
|
get
|
|
{
|
|
return (NSObject)(__mt_DefaultBehavior_var_static = Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selDefaultBehaviorHandle)));
|
|
}
|
|
[Export("setDefaultBehavior:")]
|
|
set
|
|
{
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
Messaging.void_objc_msgSend_IntPtr(class_ptr, selSetDefaultBehavior_Handle, value.Handle);
|
|
}
|
|
}
|
|
|
|
public new virtual double DoubleValue
|
|
{
|
|
[Export("doubleValue")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Double_objc_msgSend(base.Handle, selDoubleValueHandle);
|
|
}
|
|
return Messaging.Double_objc_msgSendSuper(base.SuperHandle, selDoubleValueHandle);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("init")]
|
|
public NSDecimalNumber()
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.Init);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, Selector.Init);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("initWithCoder:")]
|
|
public NSDecimalNumber(NSCoder coder)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSDecimalNumber(NSObjectFlag t)
|
|
: base(t)
|
|
{
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSDecimalNumber(IntPtr handle)
|
|
: base(handle)
|
|
{
|
|
}
|
|
|
|
[Export("initWithMantissa:exponent:isNegative:")]
|
|
public NSDecimalNumber(long mantissa, short exponent, bool isNegative)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_Int64_short_bool(base.Handle, selInitWithMantissaExponentIsNegative_Handle, mantissa, exponent, isNegative);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_Int64_short_bool(base.SuperHandle, selInitWithMantissaExponentIsNegative_Handle, mantissa, exponent, isNegative);
|
|
}
|
|
}
|
|
|
|
[Export("initWithDecimal:")]
|
|
public NSDecimalNumber(NSDecimal dec)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_NSDecimal(base.Handle, selInitWithDecimal_Handle, dec);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_NSDecimal(base.SuperHandle, selInitWithDecimal_Handle, dec);
|
|
}
|
|
}
|
|
|
|
[Export("initWithString:")]
|
|
public NSDecimalNumber(string numberValue)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (numberValue == null)
|
|
{
|
|
throw new ArgumentNullException("numberValue");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(numberValue);
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithString_Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithString_Handle, intPtr);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("initWithString:locale:")]
|
|
public NSDecimalNumber(string numberValue, NSObject locale)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (numberValue == null)
|
|
{
|
|
throw new ArgumentNullException("numberValue");
|
|
}
|
|
if (locale == null)
|
|
{
|
|
throw new ArgumentNullException("locale");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(numberValue);
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selInitWithStringLocale_Handle, intPtr, locale.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selInitWithStringLocale_Handle, intPtr, locale.Handle);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("descriptionWithLocale:")]
|
|
public new virtual string DescriptionWithLocale(NSLocale locale)
|
|
{
|
|
if (locale == null)
|
|
{
|
|
throw new ArgumentNullException("locale");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDescriptionWithLocale_Handle, locale.Handle));
|
|
}
|
|
return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDescriptionWithLocale_Handle, locale.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByAdding:")]
|
|
public virtual NSDecimalNumber Add(NSDecimalNumber d)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDecimalNumberByAdding_Handle, d.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDecimalNumberByAdding_Handle, d.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByAdding:withBehavior:")]
|
|
public virtual NSDecimalNumber Add(NSDecimalNumber d, NSObject Behavior)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selDecimalNumberByAddingWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selDecimalNumberByAddingWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberBySubtracting:")]
|
|
public virtual NSDecimalNumber Subtract(NSDecimalNumber d)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDecimalNumberBySubtracting_Handle, d.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDecimalNumberBySubtracting_Handle, d.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberBySubtracting:withBehavior:")]
|
|
public virtual NSDecimalNumber Subtract(NSDecimalNumber d, NSObject Behavior)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selDecimalNumberBySubtractingWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selDecimalNumberBySubtractingWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByMultiplyingBy:")]
|
|
public virtual NSDecimalNumber Multiply(NSDecimalNumber d)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDecimalNumberByMultiplyingBy_Handle, d.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDecimalNumberByMultiplyingBy_Handle, d.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByMultiplyingBy:withBehavior:")]
|
|
public virtual NSDecimalNumber Multiply(NSDecimalNumber d, NSObject Behavior)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selDecimalNumberByMultiplyingByWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selDecimalNumberByMultiplyingByWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByDividingBy:")]
|
|
public virtual NSDecimalNumber Divide(NSDecimalNumber d)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDecimalNumberByDividingBy_Handle, d.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDecimalNumberByDividingBy_Handle, d.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByDividingBy:withBehavior:")]
|
|
public virtual NSDecimalNumber Divide(NSDecimalNumber d, NSObject Behavior)
|
|
{
|
|
if (d == null)
|
|
{
|
|
throw new ArgumentNullException("d");
|
|
}
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selDecimalNumberByDividingByWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selDecimalNumberByDividingByWithBehavior_Handle, d.Handle, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByRaisingToPower:")]
|
|
public virtual NSDecimalNumber RaiseTo(ulong power)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt64(base.Handle, selDecimalNumberByRaisingToPower_Handle, power));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_UInt64(base.SuperHandle, selDecimalNumberByRaisingToPower_Handle, power));
|
|
}
|
|
|
|
[Export("decimalNumberByRaisingToPower:withBehavior:")]
|
|
public virtual NSDecimalNumber RaiseTo(ulong power, NSObject Behavior)
|
|
{
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt64_IntPtr(base.Handle, selDecimalNumberByRaisingToPowerWithBehavior_Handle, power, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_UInt64_IntPtr(base.SuperHandle, selDecimalNumberByRaisingToPowerWithBehavior_Handle, power, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByMultiplyingByPowerOf10:")]
|
|
public virtual NSDecimalNumber MultiplyPowerOf10(short power)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_short(base.Handle, selDecimalNumberByMultiplyingByPowerOf10_Handle, power));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_short(base.SuperHandle, selDecimalNumberByMultiplyingByPowerOf10_Handle, power));
|
|
}
|
|
|
|
[Export("decimalNumberByMultiplyingByPowerOf10:withBehavior:")]
|
|
public virtual NSDecimalNumber MultiplyPowerOf10(short power, NSObject Behavior)
|
|
{
|
|
if (Behavior == null)
|
|
{
|
|
throw new ArgumentNullException("Behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_short_IntPtr(base.Handle, selDecimalNumberByMultiplyingByPowerOf10WithBehavior_Handle, power, Behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_short_IntPtr(base.SuperHandle, selDecimalNumberByMultiplyingByPowerOf10WithBehavior_Handle, power, Behavior.Handle));
|
|
}
|
|
|
|
[Export("decimalNumberByRoundingAccordingToBehavior:")]
|
|
public virtual NSDecimalNumber Rounding(NSObject behavior)
|
|
{
|
|
if (behavior == null)
|
|
{
|
|
throw new ArgumentNullException("behavior");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selDecimalNumberByRoundingAccordingToBehavior_Handle, behavior.Handle));
|
|
}
|
|
return (NSDecimalNumber)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selDecimalNumberByRoundingAccordingToBehavior_Handle, behavior.Handle));
|
|
}
|
|
|
|
[Export("compare:")]
|
|
public new virtual long Compare(NSNumber other)
|
|
{
|
|
if (other == null)
|
|
{
|
|
throw new ArgumentNullException("other");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
return Messaging.Int64_objc_msgSend_IntPtr(base.Handle, selCompare_Handle, other.Handle);
|
|
}
|
|
return Messaging.Int64_objc_msgSendSuper_IntPtr(base.SuperHandle, selCompare_Handle, other.Handle);
|
|
}
|
|
}
|
|
}
|