代码


using System;
using System.Drawing;

public class Example
{
    
public static void Main()
    {
        
// Create an array of five Point structures.
        Point[] points = { new Point(100200), 
            
new Point(150250), new Point(250375), 
            
new Point(275395), new Point(295450) };

        // To find the first Point structure for which X times Y 
        
// is greater than 100000, pass the array and a delegate
        
// that represents the ProductGT10 method to the Shared 
        
// Find method of the Array class. 
        Point first = Array.Find(points, ProductGT10);

        // Note that you do not need to create the delegate 
        
// explicitly, or to specify the type parameter of the 
        
// generic method, because the C# compiler has enough
        
// context to determine that information for you.

        // Display the first structure found.
        Console.WriteLine(Found: X = {0}, Y = {1}, first.X, first.Y);
    }

    // This method implements the test condition for the Find
    
// method.
    private static bool ProductGT10(Point p)
    {
        
if (p.X * p.Y > 100000)
        {
            
return true;
        }
        
else
        {
            
return false;
        }
    }
}

/* This code example produces the following output:

Found: X = 275, Y = 395
 */
public delegate void Action<in T>(
    T obj
)

using System;
using System.Windows.Forms;

delegate void DisplayMessage(string message);

public class TestCustomDelegate
{
   
public static void Main()
   {
      DisplayMessage messageTarget; 

      if (Environment.GetCommandLineArgs().Length > 1)
         messageTarget 
= ShowWindowsMessage;
      
else
         messageTarget 
= Console.WriteLine;

      messageTarget(Hello, World!);   
   }      

   private static void ShowWindowsMessage(string message)
   {
      MessageBox.Show(message);      
   }
}

public delegate TResult Func<in T, out TResult>(
    T arg
)

using System;

delegate string ConvertMethod(string inString);

public class DelegateExample
{
   
public static void Main()
   {
      
// Instantiate delegate to reference UppercaseString method
      ConvertMethod convertMeth = UppercaseString;
      
string name = Dakota;
      
// Use delegate instance to call UppercaseString method
      Console.WriteLine(convertMeth(name));
   }

   private static string UppercaseString(string inputString)
   {
      
return inputString.ToUpper();
   }
}

using System;
using System.Windows.Forms;

public class TestAction1
{
   
public static void Main()
   {
      Action
<string> messageTarget; 

      if (Environment.GetCommandLineArgs().Length > 1)
         messageTarget 
= ShowWindowsMessage;
      
else
         messageTarget 
= Console.WriteLine;

      messageTarget(Hello, World!);   
   }      

   private static void ShowWindowsMessage(string message)
   {
      MessageBox.Show(message);      
   }
}

using System;

public class GenericFunc
{
   
public static void Main()
   {
      
// Instantiate delegate to reference UppercaseString method
      Func<stringstring> convertMethod = UppercaseString;
      
string name = Dakota;
      
// Use delegate instance to call UppercaseString method
      Console.WriteLine(convertMethod(name));
   }

   private static string UppercaseString(string inputString)
   {
      
return inputString.ToUpper();
   }
}

using System;
using System.Windows.Forms;

public class TestAnonMethod
{
   
public static void Main()
   {
      Action
<string> messageTarget; 

      if (Environment.GetCommandLineArgs().Length > 1)
         messageTarget 
= delegate(string s) { ShowWindowsMessage(s); };
      
else
         messageTarget 
= delegate(string s) { Console.WriteLine(s); };

      messageTarget(Hello, World!);
   }

   private static void ShowWindowsMessage(string message)
   {
      MessageBox.Show(message);      
   }
}

using System;
using System.Windows.Forms;

public class TestLambdaExpression
{
   
public static void Main()
   {
      Action
<string> messageTarget; 

      if (Environment.GetCommandLineArgs().Length > 1)
         messageTarget 
= s => ShowWindowsMessage(s); 
      
else
         messageTarget 
= s => Console.WriteLine(s);

      messageTarget(Hello, World!);
   }

   private static void ShowWindowsMessage(string message)
   {
      MessageBox.Show(message);      
   }
}

 

版权声明:本文为shineqiujuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/shineqiujuan/archive/2011/01/11/1933000.html