ผู้รับมอบสิทธิ์คือประเภทที่แสดงถึงการอ้างอิงถึงเมธอดที่มีรายการพารามิเตอร์เฉพาะและประเภทการส่งคืน เมื่อเรายกตัวอย่างผู้รับมอบสิทธิ์ เราสามารถเชื่อมโยงอินสแตนซ์กับวิธีการใดๆ ที่มีลายเซ็นที่เข้ากันได้และประเภทการส่งคืน เราสามารถเรียกใช้ (หรือเรียก) วิธีการผ่านอินสแตนซ์ของผู้รับมอบสิทธิ์
ผู้รับมอบสิทธิ์ Func
Func เป็นผู้รับมอบสิทธิ์ทั่วไปที่รวมอยู่ในเนมสเปซของระบบ มีพารามิเตอร์อินพุตเป็นศูนย์หรือมากกว่าและพารามิเตอร์ออกหนึ่งรายการ พารามิเตอร์สุดท้ายถือเป็นพารามิเตอร์ขาออก ผู้รับมอบสิทธิ์นี้สามารถชี้ไปที่วิธีการที่ใช้เวลาถึง 16 พารามิเตอร์และส่งกลับค่า
ด้านล่างนี้คือผู้รับมอบสิทธิ์ Func ที่มีพารามิเตอร์อินพุตและเอาต์พุตสองตัว
Func
ตัวอย่าง
using System;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Func<string, string, string> func = Append;
string fullName = func("Michael", "Jackson");
Console.WriteLine(fullName);
Console.ReadLine();
}
static string Append(string firstName, string lastName) {
return firstName + lastName;
}
}
} ผลลัพธ์
MichaelJackson
ผู้รับมอบสิทธิ์การดำเนินการ
การดำเนินการคือประเภทผู้รับมอบสิทธิ์ที่กำหนดไว้ในเนมสเปซของระบบ ผู้รับมอบสิทธิ์ประเภทการดำเนินการจะเหมือนกับผู้รับมอบสิทธิ์ Func เว้นแต่ผู้รับมอบสิทธิ์การดำเนินการจะไม่คืนค่า กล่าวอีกนัยหนึ่ง ผู้รับมอบสิทธิ์การดำเนินการสามารถใช้กับวิธีการที่มีประเภทการส่งคืนเป็นโมฆะ สามารถมีพารามิเตอร์อินพุตขั้นต่ำ 1 และสูงสุด 16 พารามิเตอร์ และไม่มีพารามิเตอร์เอาต์พุต
ด้านล่างนี้คือผู้รับมอบสิทธิ์ Func ที่มีพารามิเตอร์อินพุตและเอาต์พุตสองตัว
Func
ตัวอย่าง
using System;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Action func = AppendPrint;
func("Michael", "Jackson");
Console.ReadLine();
}
static void AppendPrint(string firstName, string lastName) {
string fullName = firstName + lastName;
Console.WriteLine($"{fullName}");
}
}
} ผลลัพธ์
ผลลัพธ์ของโค้ดด้านบนคือ
MichaelJackson