ผู้รับมอบสิทธิ์คือประเภทที่แสดงถึงการอ้างอิงถึงเมธอดที่มีรายการพารามิเตอร์เฉพาะและประเภทการส่งคืน เมื่อเรายกตัวอย่างผู้รับมอบสิทธิ์ เราสามารถเชื่อมโยงอินสแตนซ์กับวิธีการใดๆ ที่มีลายเซ็นที่เข้ากันได้และประเภทการส่งคืน เราสามารถเรียกใช้ (หรือเรียก) วิธีการผ่านอินสแตนซ์ของผู้รับมอบสิทธิ์
ผู้รับมอบสิทธิ์ 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