需將方法作為參數傳遞給其他方法時使用委派。操作對象非資料而是方法行為。
public delegate string GetAString();
static void Main() {
int x = 10;
GetAString firstString = new GetAString(x.ToString);
Console.WriteLine(firstString()); // 相當於 Console.WriteLine(x.ToString());
}
delegate 關鍵字宣告,語法類似方法但無本體。x.ToString)。delegate string GetUrl(string val);
static void Main() {
string domain = "www.gosoa.com.cn";
GetUrl url = delegate(string param) {
param = "https://" + param;
return param;
};
Console.WriteLine(url(domain)); // https://www.gosoa.com.cn
}
使用 delegate(參數) { ... } 直接內嵌方法本體,無需另寫具名方法。