using System;
namespace 泛型方法
{
delegate double Doubleop(double x);
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
//int i = 4;
//int j = 5;
//Swaps<int>(ref i, ref j);
//Console.ReadKey();
Doubleop[] operations = { MathOperations.MultiplyByTwo, MathOperations.Squatr };
for (int i = 0; i < operations.Length; i++)
{
Console.WriteLine("Using operations[{0}]",i);
ProcessAndDisplayNumber(operations[i], 2.0);
ProcessAndDisplayNumber(operations[i], 7.94);
ProcessAndDisplayNumber(operations[i], 1.414);
Console.WriteLine();
}
Console.WriteLine(operations[0].Invoke(3.0));
Console.WriteLine(operations[1].Invoke(5.0));
}
static void ProcessAndDisplayNumber(Doubleop action, double value)
{
double result = action(value);
Console.WriteLine("value is {0},result of operation is {1}", value, result); ;
}
//public static void Swaps<T>(ref T x, ref T y)
//{
// T temp;
// temp = x;
// x = y;
// y = temp;
//}
}
class MathOperations
{
public static double MultiplyByTwo(double value)
{
return value * 2;
}
public static double Squatr(double value)
{
return value * value;
}
}
}