static void Main() { ObjectRetriever o = new ObjectRetriever(RetrieveString); object result = o(); Console.WriteLine(result); }
public static void DelegatesTests() { Transformer t = Square; // Create delegate instance Transformer t2 = new Transformer(Square); int result = t(3); // Invoke delegate result = t2.Invoke(3); // Invoke delegate int[] values = { 1, 2, 3 }; Transform(values, Square); Transform2(values, Square); Transformer <double> s = Square; Console.WriteLine(s(3.3)); D1 d1 = Method1; //D2 d2 = d1 // Compile-time error D2 d2 = new D2(d1); ObjectRetriever o = new ObjectRetriever(GetString); object result2 = o(); Console.WriteLine(result2); StringAction sa = new StringAction(ActOnObject); sa("hello"); Func <string> x = GetString; Func <object> y = x; Console.WriteLine(y); Action <object> x1 = ActOnObject; Action <string> y2 = x1; }
static void Main(string[] args) { // input more specific parameter types than the delegate target StringAction sa = new StringAction(ActOnObject); sa("hello"); // return a more specific type than described by the delegate ObjectRetriever o = new ObjectRetriever(RetriveString); object result = o(); Console.WriteLine(result); }
public static void StartTest() { ObjectRetriever о = new ObjectRetriever(GetString); object result = о(); Console.WriteLine(result); // !hello double[] values = { 3.4, 1.6, 5.9 }; Console.Write("DelegateTest\n---------\nValues before: "); foreach (double v in values) { Console.Write(v + " "); } Transform <double>(values, Square); Console.Write("\nValues after: "); foreach (double v in values) { Console.Write(v + " "); } }