• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# Closure类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Closure的典型用法代码示例。如果您正苦于以下问题:C# Closure类的具体用法?C# Closure怎么用?C# Closure使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Closure类属于命名空间,在下文中一共展示了Closure类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Add

		static public Handle Add (uint t, GLib.TimeoutHandler timeout_handler)
		{
			Closure c;
			c = new Closure (timeout_handler);
			c.Id = GLib.Timeout.Add (t, new GLib.TimeoutHandler (c.Handler));
			return c;
		}
开发者ID:ArsenShnurkov,项目名称:beagle-1,代码行数:7,代码来源:Action.cs


示例2: IfClosure

 /**
  * Constructor that performs no validation.
  * Use <code>getInstance</code> if you want that.
  *
  * @param predicate  predicate to switch on, not null
  * @param trueClosure  closure used if true, not null
  * @param falseClosure  closure used if false, not null
  */
 public IfClosure(Predicate predicate, Closure trueClosure, Closure falseClosure)
     : base()
 {
     iPredicate = predicate;
     iTrueClosure = trueClosure;
     iFalseClosure = falseClosure;
 }
开发者ID:gadfly,项目名称:nofs,代码行数:15,代码来源:org.apache.commons.collections.functors.IfClosure.cs


示例3: SwitchClosure

 /**
  * Constructor that performs no validation.
  * Use <code>getInstance</code> if you want that.
  *
  * @param predicates  array of predicates, not cloned, no nulls
  * @param closures  matching array of closures, not cloned, no nulls
  * @param defaultClosure  the closure to use if no match, null means nop
  */
 public SwitchClosure(Predicate[] predicates, Closure[] closures, Closure defaultClosure)
     : base()
 {
     iPredicates = predicates;
     iClosures = closures;
     iDefault = (defaultClosure == null ? NOPClosure.INSTANCE : defaultClosure);
 }
开发者ID:gadfly,项目名称:nofs,代码行数:15,代码来源:org.apache.commons.collections.functors.SwitchClosure.cs


示例4: LuaFFreeClosure

 // we have a gc, so nothing to do
 public static void LuaFFreeClosure(LuaState L, Closure c)
 {
     int size = (c.c.isC != 0) ? SizeCclosure(c.c.nupvalues) :
                             SizeLclosure(c.l.nupvalues);
     //luaM_freemem(L, c, size);
     SubtractTotalBytes(L, size);
 }
开发者ID:arkanoid1,项目名称:FakePacketSender,代码行数:8,代码来源:lfunc.cs


示例5: WhileClosure

 /**
  * Constructor that performs no validation.
  * Use <code>getInstance</code> if you want that.
  *
  * @param predicate  the predicate used to evaluate when the loop terminates, not null
  * @param closure  the closure the execute, not null
  * @param doLoop  true to act as a do-while loop, always executing the closure once
  */
 public WhileClosure(Predicate predicate, Closure closure, bool doLoop)
     : base()
 {
     iPredicate = predicate;
     iClosure = closure;
     iDoLoop = doLoop;
 }
开发者ID:gadfly,项目名称:nofs,代码行数:15,代码来源:org.apache.commons.collections.functors.WhileClosure.cs


示例6: StronglyTypedAstBuilder

 public StronglyTypedAstBuilder(Closure externalClosure)
 {
     foreach (var pair in externalClosure)
     {
         _closure.Add(pair.Key, pair.Value);
     }
 }
开发者ID:xeno-by,项目名称:relinq,代码行数:7,代码来源:StronglyTypedAstBuilder.cs


示例7: Generate

 public void Generate()
 {
     indensionStack.Clear();
     indensionStack.Push(-1);
     if (app == null) app = new Application();
     thisPresentation = app.Presentations.Add(MsoTriState.msoFalse);
     var cl = new DocumentClosure(null, thisPresentation, app);
     CurrentClosure = cl;
     ChangeTheme();
     cl.Initialize();
     cl.WorkPath = DefaultWorkPath;
     var module = thisPresentation.VBProject.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule);
     module.CodeModule.AddFromString(Resources.VBAModule);
     while (true)
     {
         var thisLine = ScriptReader.ReadLine();
         if (thisLine == null) break;
         Console.WriteLine(thisLine);
         if (!string.IsNullOrWhiteSpace(thisLine) && thisLine.TrimStart()[0] != '#')
             ParseLine(thisLine);
     }
     while (CurrentClosure != null) ExitClosure();
     app.Run("PAG_PostProcess", thisPresentation);
     var wnd = thisPresentation.NewWindow();
     thisPresentation.VBProject.VBComponents.Remove(module);
     wnd.Activate();
     //thisPresentation.Close();
 }
开发者ID:CXuesong,项目名称:PptAlbumGenerator,代码行数:28,代码来源:AlbumGenerator.cs


示例8: luaF_freeclosure

 // we have a gc, so nothing to do
 public static void luaF_freeclosure(lua_State L, Closure c)
 {
     int size = (c.c.isC != 0) ? sizeCclosure(c.c.nupvalues) :
                           sizeLclosure(c.l.nupvalues);
       //luaM_freemem(L, c, size);
       SubtractTotalBytes(L, size);
 }
开发者ID:raymanyu,项目名称:kopilua,代码行数:8,代码来源:lfunc.cs


示例9: ShouldBeAbleToNestClosures

        public void ShouldBeAbleToNestClosures()
        {
            MathOperation add = delegate(int a, int b) { return a + b; };
            Closure doMath = new Closure(add, new Closure(add, new Closure(add, 1, 1), 1), 1);

            int result = (int) doMath.Invoke();
            Assert.IsTrue(result == 4);
        }
开发者ID:jonfuller,项目名称:LinFu.DynamicObject,代码行数:8,代码来源:ClosureTests.cs


示例10: CallLuaClosure

 protected IEnumerator CallLuaClosure(LuaEnvironment luaEnv, Closure callback)
 {
     yield return new WaitForEndOfFrame();
     if (callback != null)
     {
         luaEnv.RunLuaFunction(callback, true);
     }
 }
开发者ID:abstractmachine,项目名称:Fungus-3D-Template,代码行数:8,代码来源:MenuDialog.cs


示例11: getInstance

 /**
  * Factory method that performs validation.
  *
  * @param closure  the closure to call, not null
  * @return the <code>closure</code> transformer
  * @throws IllegalArgumentException if the closure is null
  */
 public static Transformer getInstance(Closure closure)
 {
     if (closure == null)
     {
         throw new java.lang.IllegalArgumentException("Closure must not be null");
     }
     return new ClosureTransformer(closure);
 }
开发者ID:gadfly,项目名称:nofs,代码行数:15,代码来源:org.apache.commons.collections.functors.ClosureTransformer.cs


示例12: copy

 /**
  * Clone the closures to ensure that the internal reference can't be messed with.
  *
  * @param closures  the closures to copy
  * @return the cloned closures
  */
 internal static Closure[] copy(Closure[] closures)
 {
     if (closures == null)
     {
         return null;
     }
     return (Closure[])closures.clone();
 }
开发者ID:gadfly,项目名称:nofs,代码行数:14,代码来源:org.apache.commons.collections.functors.FunctorUtils.cs


示例13: getInstance

 /**
  * Factory method that performs validation and copies the parameter array.
  *
  * @param closures  the closures to chain, copied, no nulls
  * @return the <code>chained</code> closure
  * @throws IllegalArgumentException if the closures array is null
  * @throws IllegalArgumentException if any closure in the array is null
  */
 public static Closure getInstance(Closure[] closures)
 {
     FunctorUtils.validate(closures);
     if (closures.Length == 0)
     {
         return NOPClosure.INSTANCE;
     }
     closures = FunctorUtils.copy(closures);
     return new ChainedClosure(closures);
 }
开发者ID:gadfly,项目名称:nofs,代码行数:18,代码来源:org.apache.commons.collections.functors.ChainedClosure.cs


示例14: Coroutine_Create

		public DynValue Coroutine_Create(Closure closure)
		{
			// create a processor instance
			Processor P = new Processor(this);

			// Put the closure as first value on the stack, for future reference
			P.m_ValueStack.Push(DynValue.NewClosure(closure));

			// Return the coroutine handle
			return DynValue.NewCoroutine(new Coroutine(P));
		}
开发者ID:cyecp,项目名称:moonsharp,代码行数:11,代码来源:Processor_Coroutines.cs


示例15: CurriedClosureShouldBeAbleToBindToAStronglyTypedDelegate

        public void CurriedClosureShouldBeAbleToBindToAStronglyTypedDelegate()
        {
            MathOperation add = delegate(int a, int b) { return a + b; };
            Closure doMath = new Closure(add, Args.Lambda, 1);
            SingleOperatorMathOperation mathOp = doMath.AdaptTo<SingleOperatorMathOperation>();

            // return 5 + 1
            int result = mathOp(5);
            // The result should be 6
            Assert.AreEqual(6, result);
        }
开发者ID:jonfuller,项目名称:LinFu.DynamicObject,代码行数:11,代码来源:ClosureTests.cs


示例16: getInstance

 /**
  * Factory method that performs validation.
  *
  * @param predicate  the predicate used to evaluate when the loop terminates, not null
  * @param closure  the closure the execute, not null
  * @param doLoop  true to act as a do-while loop, always executing the closure once
  * @return the <code>while</code> closure
  * @throws IllegalArgumentException if the predicate or closure is null
  */
 public static Closure getInstance(Predicate predicate, Closure closure, bool doLoop)
 {
     if (predicate == null)
     {
         throw new java.lang.IllegalArgumentException("Predicate must not be null");
     }
     if (closure == null)
     {
         throw new java.lang.IllegalArgumentException("Closure must not be null");
     }
     return new WhileClosure(predicate, closure, doLoop);
 }
开发者ID:gadfly,项目名称:nofs,代码行数:21,代码来源:org.apache.commons.collections.functors.WhileClosure.cs


示例17: getInstance

 /**
  * Factory method that performs validation.
  * <p>
  * A null closure or zero count returns the <code>NOPClosure</code>.
  * A count of one returns the specified closure.
  *
  * @param count  the number of times to execute the closure
  * @param closure  the closure to execute, not null
  * @return the <code>for</code> closure
  */
 public static Closure getInstance(int count, Closure closure)
 {
     if (count <= 0 || closure == null)
     {
         return NOPClosure.INSTANCE;
     }
     if (count == 1)
     {
         return closure;
     }
     return new ForClosure(count, closure);
 }
开发者ID:gadfly,项目名称:nofs,代码行数:22,代码来源:org.apache.commons.collections.functors.ForClosure.cs


示例18: MethodResolution

        public MethodResolution(MethodInfo methodInfo, Closure closure, InvokeExpression callAst)
        {
            MethodInfo = methodInfo;
            Closure = closure;
            CallAst = callAst;
            Result = null;

            PassesComplete = null;
            Target = new StronglyTypedAstBuilder(closure).Visit(callAst.Target);
            FormalArgs = new List<Type>(MethodInfo.GetParameters().Select(p => p.ParameterType));
            RealArgs = new List<Expression>(callAst.Args.Select(ast => ast is LambdaExpression ?
                new StronglyTypedAstBuilder(closure).VisitLambda((LambdaExpression)ast, null, true) :
                new StronglyTypedAstBuilder(closure).Visit(ast)));
            InferenceCache = new Dictionary<Type, Type>();
            Array.ForEach(MethodInfo.GetGenericArguments(), t => InferenceCache.Add(t, null));
        }
开发者ID:xeno-by,项目名称:relinq,代码行数:16,代码来源:MethodResolution.cs


示例19: AddOption

        /// <summary>
        /// Extension for MenuDialog that allows AddOption to call a Lua function when an option is selected.
        /// </summary>
        public static bool AddOption(this MenuDialog menuDialog, string text, bool interactable, LuaEnvironment luaEnvironment, Closure callBack)
        {
            if (!menuDialog.gameObject.activeSelf)
            {
                menuDialog.gameObject.SetActive(true);
            }

            bool addedOption = false;
            foreach (Button button in menuDialog.cachedButtons)
            {
                if (!button.gameObject.activeSelf)
                {
                    button.gameObject.SetActive(true);

                    button.interactable = interactable;

                    Text textComponent = button.GetComponentInChildren<Text>();
                    if (textComponent != null)
                    {
                        textComponent.text = text;
                    }

                    button.onClick.AddListener(delegate {

                        menuDialog.StopAllCoroutines(); // Stop timeout
                        menuDialog.Clear();
                        menuDialog.HideSayDialog();

                        if (callBack != null)
                        {
                            luaEnvironment.RunLuaFunction(callBack, true);
                        }
                    });

                    addedOption = true;
                    break;
                }
            }

            return addedOption;
        }
开发者ID:KRUR,项目名称:NotJustASheep,代码行数:44,代码来源:LuaExtensions.cs


示例20: ShouldBeAbleToCurryArguments

        public void ShouldBeAbleToCurryArguments()
        {
            object source = new object();
            EventArgs args = new EventArgs();

            ITestCounter counter = mock.NewMock<ITestCounter>();
            Expect.Once.On(counter).Method("Increment").WithAnyArguments();

            EventHandler dummyHandler = delegate(object eventSource, EventArgs e)
                                            {
                                                // The arguments passed to the
                                                // delegate should match the ones
                                                // given
                                                Assert.AreSame(eventSource, source);
                                                Assert.AreSame(e, args);
                                                counter.Increment();
                                            };

            Closure closure = new Closure(dummyHandler, source);
            Assert.IsTrue(closure.Arguments.Contains(source));
            closure.Invoke(args);
        }
开发者ID:jonfuller,项目名称:LinFu.DynamicObject,代码行数:22,代码来源:ClosureTests.cs



注:本文中的Closure类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Cloud类代码示例发布时间:2022-05-24
下一篇:
C# ClosingEventArgs类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap