Delegate Là Gì

Dẫn nhập

Ở bài học kinh nghiệm trước, chúng ta sẽ với nhau khám phá về ILIST TRONG C#. Hôm nay chúng ta đang thuộc mày mò về Delegate vào C#.

Bạn đang xem: Delegate là gì

Bài Viết: Delegate là gì

Nội dung

Để gọi hiểu bài bác này rất tốt bọn họ bắt buộc bao gồm kiến thức và kỹ năng cơ bản về đa số phần:

Trong bài học kinh nghiệm này, bọn họ sẽ cùng mày mò đầy đủ vấn đề:

Delegate là gì?Knhị báo Delegate trong C#Khởi chế tác Delegate vào C#Multicast(nhiều hướng) một Delegate vào C#Cách thức sử dụng Delegate vào C#Dùng Delegate nlỗi một call-baông chồng function

Delegate là gì?

Delegate trong C# tương tự như như bé trỏ hàm trong C hoặc C++.

Delegate là một vươn lên là hình trạng tmê say chiếu(references) chứa ttê mê chiếu tới một phương thức.

Tđắm say chiếu của Delegate có thể thay đổi runtime(lúc công tác sẽ thực thi).

Delegate thường được áp dụng để triển khai phần nhiều cách làm hoặc sự khiếu nại call-back.

quý khách cđọng đọc Delegate là một thay đổi song chút, biến đổi này đựng hàm cơ mà bạn phải gọi. Sau này lôi ra dùng nlỗi hàm đôi chút. Giá trị của biến chuyển Delegate hôm nay là tmê mệt chiếu cho hàm. cũng có thể biến đổi runtime lúc công tác đang hoạt động.

Delegate được dẫn xuất trường đoản cú lớp System.Delegate vào C#.

Khai báo Delegate vào C#

Khai báo Delegate trong C# vẫn tựa như như knhị báo một vươn lên là. Nhưng nên thêm từ khóa Delegate để xác minh đó là một Delegate. Đồng thời bởi vì Delegate là nhằm tđê mê chiếu mang lại một hàm, buộc phải cũng cần được knhì báo kèm đẳng cấp dữ liệu trả về của cùng tham mê số nguồn vào của Delegate khớp ứng với hàm tđam mê chiếu.

Công thức:

delegate mẫu mã trả về> tên delegate> (danh sách tha số trường hợp có>);

Ví dụ:

delegate int MyDelegate(string s);Lưu ý: Chữ delegate viết thường


Hiện giờ bọn họ đang tạo thành một Delegate có thương hiệu là MyDelegate. MyDelegatebao gồm kiểu dáng trả về là int, một tsi mê số nguồn vào là string.

MyDelegatehôm nay rất có thể cần sử dụng có tác dụng thứ hạng dữ liệu cho mọi Delegate cho tới hàm khớp ứng loại trả về với tyêu thích số nguồn vào.

Khởi tạo thành cùng áp dụng Delegate vào C#

khi hình dáng Delegateđược knhì báo, đối tượng người sử dụng người tiêu dùng Delegatebắt buộc được chế tạo ra với từ bỏ khóa new với được tmê mệt chiếu mang lại một thủ tục chũm thể. Phương thức này yêu cầu cùng dạng hình trả về cùng tđam mê số đầu vào cùng với Delegatesẽ sản xuất.

Khi chế tạo một Delegate, tsay đắm số được truyền với biểu thức new được viết tương tự nhỏng một lời điện thoại tư vấn phương thơm thức, tuy thế không tồn tại tđắm đuối số tới phương thức đó. Tức là chỉ truyền tên hàm vào thôi. Delegatesẽ từ bỏ đánh giá hàm được đưa vào bao gồm cùng phong cách tài liệu trả ra và thuộc tđắm say số đầu vào hay là không.

Ví dụ:

class Program delegate int MyDelegate(string s); static void Main(string args) Console.OutputEncoding = Encoding.Unicode; MyDelegate convertToInt = new MyDelegate(ConvertStringToInt); string numberSTR = “35”; int valueConverted = convertToInt(numberSTR);Console.WriteLine(“Giá trị đang convert thành int: ” + valueConverted); Console.ReadLine(); static int ConvertStringToInt(string stringValue) int valueInt = 0; Int32.TryParse(stringValue, out valueInt);Console.WriteLine(“Đã xay vẻ bên ngoài dữ liệu thành công”); return valueInt; Kết quả chạy cmùi hương trình:


*

Để bọn họ hiểu rõ hơn về đoạn code trên thì mình đã lý giải một chút:

Tại phía trên bản thân chế tác một hàm ConvertStringToInt có tác dụng nhiệm vụ là đưa hình trạng dữ liệu của một vài trường đoản cú string lịch sự int.Mình áp dụng Delegatebằng phương thức tạo ra một vươn lên là convertToInt gồm loại tài liệu là MyDelegate. convertToInt này bản thân new MyDelegatevới ttê mê số nguồn vào là tên gọi hàm ConvertStringToInt(lưu ý chỉ thương hiệu hàm thôi).Mình tất cả đổi mới numberSTR hình dạng string khởi tạo nên quý hiếm là 35.Mình tạo thành một biến valueConverted hình dạng int khởi chế tạo ra nó bằng tác dụng Call DelegateconvertToInt cùng với tmê say số truyền vào Delegatelà phát triển thành numberSTR.Kết quả xuất ra màn hình Console là số 35.

Nhận thấy DelegateconvertToInt bản thân sử dụng giống như nlỗi một hàm tí đỉnh.

Xem thêm: Tên Thật Của Blackpink Tên Thật, Thông Tin Thành Viên Nhóm Blackpink


Do MyDelegatesẽ khởi tạo đồng hóa kiểu dữ liệu trả về cùng tđắm đuối số nguồn vào cùng với hàm ConvertStringToInt buộc phải convertToInt new vừa lòng trường hợp khởi tạo ra và áp dụng của hàm ConvertStringToInt này.

Vậy Delegatethực chất chỉ là một trong trở nên sửa chữa thay thế mang đến hàm, biến đổi này tham chiếu đến hàm nó ý muốn tsi mê chiếu để sửa chữa thay thế vậy khi sử dụng. Cách thức sử dụng hệt như điện thoại tư vấn một hàm.

Vì sao cần Delegate? Khi bạn yêu cầu dùng một hàm nlỗi một biến ví dụ như ttê mê số truyền vào của một hàm, hàm call-baông chồng, sự kiện…

Multicast(nhiều hướng) một Delegate vào C#

Khi bạn cần triển khai một chuỗi hàm cùng với thuộc phong cách trả về và cùng tsay mê số đầu vào nhưng không thích Gọi các hàm tuần tự (chỉ Hotline 1 hàm 1 lần duy nhất). Hiện giờ các bạn sẽ đề xuất cần sử dụng mang đến Multicast Delegate.

Thực chất bạn cũng có thể làm cho một chuỗi Delegatethuộc hình dạng Delegatebởi phương pháp dùng toán thù tử +. Hiện giờ khi chúng ta Call Delegatevẫn triển khai tuần trường đoản cú đầy đủ Delegateđược cùng vào với nhau.

Bạn cũng có thể loại trừ Delegatevào multicast bởi toán tử.

Ví dụ:

class Program delegate int MyDelegate(string s); static void Main(string args) Console.OutputEncoding = Encoding.Unicode; MyDelegate convertToInt = new MyDelegate(ConvertStringToInt); MyDelegate showString = new MyDelegate(ShowString); MyDelegate multicast = convertToInt + showString; string numberSTR = “35”; int valueConverted = convertToInt(numberSTR);Console.WriteLine(“Giá trị vẫn convert thành int: ” + valueConverted); Console.WriteLine(“Kết quả khi gọi multicast Delegate”); multicast(numberSTR); Console.ReadLine(); static int ConvertStringToInt(string stringValue) int valueInt = 0; Int32.TryParse(stringValue, out valueInt); Console.WriteLine(“Đã xay kiểu dữ liệu thành công”); return valueInt; static int ShowString(string stringValue) Console.WriteLine(stringValue); return 0; Kết quả: lúc chạy chương trình


*

Dùng lại ví dụ của phần trước.

Mình tạo ra thêm hàm ShowString với mục dích là xuất ra màn hình hiển thị Console chuỗi truyền vào. Mình tạo thành thêm 2 Delegatelà showString tđam mê chiếu cho tới hàm ShowString và multicast là hiệu quả cùng của 2 DelegateconvertToInt và showString .

Mình gọi Delegatemulticast để tiến hành 1 lần 2 Delegatetuần từ là convertToInt cùng showString.

Console.WriteLine(“Kết quả Khi Hotline multicast Delegate”);multicast(numberSTR);Lúc cần sa thải Delegatevào multicast chúng ta chỉ câu hỏi trừ Delegatera

multicast = multicast – showString;


Dùng Delegate mang lại call-baông xã function

Như mình đã nhắc đến ở trên,Delegatecũng là 1 trong phát triển thành. Vậy phải mình hoàn toàn có thể truyền Delegatevào hàm làm cho parameter nhỏng biến hóa tí đỉnh. Lúc này Delegatenày sẽ được Điện thoại tư vấn là call-baông chồng function. Mục đích của Việc này là hàm nhấn call-back function là param rất có thể hotline Delegateđược đưa vào khi nào nên nhỏng ví dụ sau:

delegate int MyDelegate(string s); static void Main(string args) Console.OutputEncoding = Encoding.Unicode; MyDelegate showString = new MyDelegate(ShowString); NhapVaShowTen(showString);Console.ReadLine(); static void NhapVaShowTen(MyDelegate showTen) Console.WriteLine(“Mời nhập thương hiệu của bạn:”); string ten = Console.ReadLine(); showTen(ten); static int ShowString(string stringValue) Console.WriteLine(stringValue); return 0; Kết quả: khi chạy cmùi hương trình:


*

Nlỗi các bạn thấy, tôi đã áp dụng Delegatelàm call-back function thành công.

Ý nghĩa của ví dụ là mỗi khi người tiêu dùng nhtràn lên tên của mình thì sẽ Call DelegateShowString nhằm hiển thị thương hiệu người tiêu dùng vừa nhập vào ra màn hình hiển thị console. Vậy từ bây giờ hàm ShowString này tuyệt vời có thể được tư tưởng bởi người sử dụng nhưng mà không phải can thiệp vào code của hàm NhapVaShowTen.

Kết luận

Nội dung bài xích này giúp chúng ta cụ được:

Delegate là gì?Knhì báo Delegate vào C#Khởi sản xuất Delegate trong C#Multicast(đa hướng) một Delegate vào C#Cách thức cần sử dụng Delegate vào C#Dùng Delegate như một call-back function

Bài học tập sau bọn họ đang thuộc khám phá về EVENT TRONG C#.

Cảm ơn chúng ta đã theo dõi và quan sát nội dung bài viết. Hãy vướng lại phản hồi hoặc góp ý của tớ để cải tiến và phát triển nội dung bài viết giỏi rộng. Nhớ là “Luyện tập – Thử thách – Không mắc cỡ khó”.

Thảo luận

Nếu bạn bao gồm ngẫu nhiên tinh vi hay thắc mắc gì về khóa huấn luyện và đào tạo, đừng e dè đặt băn khoăn vào phần BÌNH LUẬN bên dưới hoặc vào mục HỎI và ĐÁP.. trên tlỗi viện Howkteamđể nhận được sự hỗ trợ từ bỏ xóm hội.

Thể Loại: Chia sẻ Kiến Thức Cộng Đồng
Bài Viết: Delegate Là Gì – định Nghĩa, Ví Dụ, Giải Thích

Thể Loại: LÀ GÌ

Nguồn Blog là gì: https://mni-alive.com Delegate Là Gì – định Nghĩa, Ví Dụ, Giải Thích

Leave a Reply

Your email address will not be published. Required fields are marked *