C# delegates ការបង្រៀន និងឧទាហរណ៍
C# delegates ការបង្រៀន និងឧទាហរណ៍. C# delegates ការបង្រៀន និងឧទាហរណ៍. C# delegates ការបង្រៀន និងឧទាហរណ៍. C# delegates ការបង្រៀន និងឧទាហរណ៍.
C# delegates ការបង្រៀន និងឧទាហរណ៍.
C# delegates ការបង្រៀន និងឧទាហរណ៍. C# delegates ការបង្រៀន និងឧទាហរណ៍. C# delegates ការបង្រៀន និងឧទាហរណ៍, C# delegates ការបង្រៀន និងឧទាហរណ៍.
នៅទីនេះ, យើងមានឧទាហរណ៍សាមញ្ញមួយដើម្បីយល់ពីប្រតិភូ. យើងមានថ្នាក់ Playlist ដែលអនុញ្ញាតឱ្យបន្ថែមបទចម្រៀងទៅក្នុងបញ្ជីចាក់. ថ្នាក់ Playlist ផ្តល់នូវវិធីសាស្រ្តមួយហៅថា ShowPlaylist ដែលបោះពុម្ពបទចម្រៀងទាំងអស់នៅក្នុងបញ្ជីចាក់.
បញ្ជីចាក់ថ្នាក់
{
// code eliminated for brevity
public void ShowPlaylist()
{
ខាងមុខ (ចម្រៀងក្នុងបញ្ជីនេះ។)
{
Console.WriteLine("ចំណងជើងបទចម្រៀង: {0}". song.Title);
}
}
}
ដោយប្រើវិធីសាស្ត្រ ShowPlaylist ថ្នាក់បញ្ជីចាក់ នឹងទទួលបានការបោះពុម្ពបញ្ជីចាក់ពេញលេញ.
សូមណែនាំប្រតិភូទៅថ្នាក់ Playlist. ការប្រើប្រាស់ delegate នឹងអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់នៃថ្នាក់ Playlist អនុវត្តតក្កវិជ្ជាសម្រាប់បង្ហាញបញ្ជីចាក់.
នៅទីនេះយើងប្រកាសប្រតិភូនៅក្នុងថ្នាក់ Playlist ដែលមានប៉ារ៉ាម៉ែត្រច្រៀងនៃប្រភេទ Song
បញ្ជីចាក់ថ្នាក់
{
// កូដត្រូវបានលុបចោលសម្រាប់ភាពខ្លី
// delegate for showing song
public delegate bool ProcessPlaylistDelegate(ចម្រៀងចម្រៀង);
...
យើងត្រូវកែតម្រូវ ShowPlayList() វិធីសាស្រ្តប្រើប្រាស់ ProcessPlaylistDelegate. វិធីសាស្ត្រ ShowPlayList យក ProcessPlaylistDelegate ជាប៉ារ៉ាម៉ែត្រ. ឥឡូវនេះយើងអាចដំណើរការបញ្ជីចាក់មុនពេលបោះពុម្ពវា។.
//show the playlist using another function attached to ProcessPlaylistDelegate
public void ShowPlaylist(ProcessPlaylistDelegate processPlaylist)
{
ខាងមុខ (ចម្រៀងក្នុងបញ្ជីនេះ។)
{
ប្រសិនបើ (បញ្ជីដំណើរការ(ចម្រៀង))
{
Console.WriteLine("ចំណងជើងបទចម្រៀង: {0}", song.Title);
}
}
}
ឥឡូវនេះ ថ្នាក់នេះអាចផ្ទេរសិទ្ធិដំណើរការទៅវិធីសាស្ត្រផ្សេងទៀត ដរាបណាប្រភេទត្រឡប់ និងប្រភេទប៉ារ៉ាម៉ែត្រត្រូវគ្នានឹងប្រតិភូ។. ខាងក្រោមថ្នាក់កម្មវិធីកំពុងប្រើថ្នាក់បញ្ជីចាក់. យើងប្រកាស Playlist.ProcessPlaylistDelegate ថ្មី ហើយបន្ទាប់មកយើងកំពុងភ្ជាប់ getMp3Songs ទៅកាន់ប្រតិភូ.
កម្មវិធីថ្នាក់
{
ទុកជាមោឃៈឋិតិវន្ត Main(ខ្សែអក្សរ[] args)
{
បញ្ជីចាក់1=បញ្ជីចាក់ថ្មី។();
//add some songs to the playlist
//use the delegate to process the list before it is printed on the screen
playlist1.ShowPlaylist(បញ្ជីចាក់ថ្មី.ProcessPlaylistDelegate(GetMp3Songs));
}
}
ខាងក្រោមនេះគឺជានិយមន័យវិធីសាស្រ្ត getMp3Songs. វិធីនេះត្រឡប់តែចម្រៀង mp3 ប៉ុណ្ណោះ។. ដូច្នេះ ShowPlaylist នឹងបោះពុម្ពបទចម្រៀង mp3.
ប៊ូលឋិតិវន្តសាធារណៈ GetMp3Songs(ចម្រៀងចម្រៀង)
{
//more logic goes here
return (song.Format == "mp3");
}
អំណាចនៃប្រតិភូកើតឡើងនៅពេលដែលយើងអាចដំណើរការបញ្ជីចាក់ខុសគ្នាដោយមិនចាំបាច់ប៉ះថ្នាក់បញ្ជីចាក់. ខាងក្រោមនេះ យើងសូមប្រកាស 2 វិធីសាស្រ្តផ្សេងទៀតនៅក្នុងថ្នាក់កម្មវិធី.
ប៊ូលឋិតិវន្តសាធារណៈ GetCdSongs(ចម្រៀងចម្រៀង)
{
//more logic goes here
return (song.Format == "ស៊ីឌី");
}
ប៊ូលឋិតិវន្តសាធារណៈ GetAllSongs(ចម្រៀងចម្រៀង)
{
//more logic goes here
return true;
}
ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង. ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង. ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង. ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង.
ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង(បញ្ជីចាក់ថ្មី.ProcessPlaylistDelegate(ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង));
ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង(បញ្ជីចាក់ថ្មី.ProcessPlaylistDelegate(ឥឡូវនេះយើងគ្រាន់តែត្រូវភ្ជាប់វាទៅគណៈប្រតិភូនៅក្នុងវិធីចម្បង));
