// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under MIT X11 license (for details please see \doc\license.txt) using System; using System.Collections.Generic; public static class DelegateConstruction { public static void Test(this string a) { } public static Action ExtensionMethodUnbound() { return new Action(DelegateConstruction.Test); } public static Action ExtensionMethodBound() { return new Action("abc".Test); } public static Action ExtensionMethodBoundOnNull() { return new Action(((string)null).Test); } public static object StaticMethod() { return new Func(DelegateConstruction.ExtensionMethodBound); } public static object InstanceMethod() { return new Func("hello".ToUpper); } public static object InstanceMethodOnNull() { return new Func(((string)null).ToUpper); } public static List> AnonymousMethodStoreWithinLoop() { List> list = new List>(); for (int i = 0; i < 10; i++) { int counter; list.Add(x => counter = x); } return list; } public static List> AnonymousMethodStoreOutsideLoop() { List> list = new List>(); int counter; for (int i = 0; i < 10; i++) { list.Add(x => counter = x); } return list; } }