/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="KecaknoahInteropDelegate"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterFunction(KecaknoahInteropDelegate func, string name) { var fo = new KecaknoahInteropMethodInfo(name, func); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.CreateRightReference(null, func)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterFunction(Func <KecaknoahObject, KecaknoahObject[], string> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => func(self, args).AsKecaknoahString().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.CreateRightReference(null, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterBooleanFunction(Func <KecaknoahObject, KecaknoahObject[], bool> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => func(self, args).AsKecaknoahBoolean().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterSingleFunction(Func <KecaknoahObject, KecaknoahObject[], float> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => ((double)func(self, args)).AsKecaknoahFloat().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterFunction(Func<KecaknoahObject, KecaknoahObject[], string> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => func(self, args).AsKecaknoahString().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.CreateRightReference(null, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param> public void RegisterMethod(KecaknoahInteropMethodInfo method) { topMethods.Add(method); methodReferences.Add(KecaknoahReference.CreateRightReference(new KecaknoahInteropFunction(null, method.Body))); }
/// <summary> /// メソッドを追加します。 /// </summary> /// <param name="method">追加するメソッド</param> internal void AddInstanceMethod(KecaknoahInteropMethodInfo method) { methods.Add(method); }
/// <summary> /// クラスメソッドを追加します。 /// </summary> /// <param name="method">追加するメソッド</param> internal void AddClassMethod(KecaknoahInteropMethodInfo method) { classMethods.Add(method); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterBooleanFunction(Func<KecaknoahObject, KecaknoahObject[], bool> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => func(self, args).AsKecaknoahBoolean().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="func">登録する<see cref="Func{T1, T2, TResult}"/>形式のメソッド</param> /// <param name="name">メソッド名</param> public void RegisterSingleFunction(Func<KecaknoahObject, KecaknoahObject[], float> func, string name) { KecaknoahInteropDelegate wp = (ctx, self, args) => ((double)func(self, args)).AsKecaknoahFloat().NoResume(); var fo = new KecaknoahInteropMethodInfo(name, wp); topMethods.Add(fo); methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, wp)); }
/// <summary> /// .NETメソッドをトップレベルに登録します。 /// </summary> /// <param name="method">登録する<see cref="KecaknoahInteropMethodInfo"/>形式のメソッド</param> public void RegisterMethod(KecaknoahInteropMethodInfo method) { topMethods.Add(method); methodReferences.Add(KecaknoahReference.Right(KecaknoahNil.Instance, method.Body)); }