委託:delegate
與類平級
用於封裝,解耦
// 宣告一個委託
delegate void Func(int x);
簡單使用
namespace ConsoleApp2;
class Program
{
/**
* 委託
*/
public delegate double CalculateFunction(double x, double y);
/**
* 加法
*/
static double Add(double x, double y)
{
return x + y;
}
/**
* 減法
*/
static double Subtract(double x, double y)
{
return x - y;
}
// Test方法的引數就是一個方法,
static void Test(CalculateFunction calculateFunction)
{
Console.Write("請輸入x的值:");
double x = Convert.ToDouble(Console.ReadLine());
Console.Write("請輸入y的值:");
double y = Convert.ToDouble(Console.ReadLine());
double result = calculateFunction(x, y);
Console.WriteLine($"x與y委託計算的結果>>>{result}");
}
static void Main(string[] args)
{
// CalculateFunction cal = new CalculateFunction(Add);
// double d = cal(3, 4);
// Test(new CalculateFunction(Add));
Test(Add); // 簡寫
Test(Subtract);
Console.ReadKey();
}
}
介面實現了類的依賴注入
委託實現了方法的依賴注入