PDA

View Full Version : سوال: کاربرد Delegate ها



mahdi.akbari
شنبه 13 خرداد 1391, 22:53 عصر
سلام دوستان

کسی هست توضیح بده که این Delegate ها چه کاربردی دارند؟
منظورم اینه که یه مثالی بزنید که ما در این مثال مجبور باشیم به کمک Delegate ها اون رو حل کنیم ....

hunter_ara
یک شنبه 14 خرداد 1391, 07:47 صبح
سلام دوستان

کسی هست توضیح بده که این Delegate ها چه کاربردی دارند؟
منظورم اینه که یه مثالی بزنید که ما در این مثال مجبور باشیم به کمک Delegate ها اون رو حل کنیم ....

Delegate یک نوع اشاره گر هست که به جای آدرس داده، آدرس تابع توش قرار میگیره و با کال کردن Delegate در واقع تابع شما کال میشه!

multicast delegate همون Delegate معمولی هست که به جای یک تابع به 2 یا چند تابع (تعداد دلخواه) اشاره میکنه!
بیشترین استفاده از Delegate همون EventHandler های ساده خودمون هستن که برنامه نویسی ویندوز فرم بدون اونها غیر ممکنه!

samadblaj
یک شنبه 14 خرداد 1391, 09:58 صبح
میشه یه مثال ساده و واضح بزنید؟

hunter_ara
یک شنبه 14 خرداد 1391, 10:22 صبح
میشه یه مثال ساده و واضح بزنید؟

اینم مثال ساده خدمت شما :لبخند:
87820

ahmadreza517
یک شنبه 14 خرداد 1391, 11:01 صبح
به نام تنها برنامه نویس هستی
سلام ,

اینم یک مثال دیگه

samadblaj
یک شنبه 14 خرداد 1391, 12:07 عصر
سلام ، ممنونم از دوستان بابت کمکشون...

هضم این مبحث برام سخت بود.

hunter_ara
یک شنبه 14 خرداد 1391, 12:19 عصر
ممنونم از دوستان بابت کمکشون...



دکمه تشکر برای همینه! :لبخندساده:

این تاپیک (http://barnamenevis.org/showthread.php?221125-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-delegate-Interfacer)هم بد نیست! :بامزه:

samadblaj
یک شنبه 14 خرداد 1391, 13:50 عصر
ببخشید من همیشه تشکر میکردم ، یه لحظه حواسم نبود اگه به آمارمم نگاه کنی از تمامی پست های با ارزش و محتوا تشکر کردم و بیشتر یه مصرف کننده بودم امیدوارم بتونم تو آینده ای نزدیک زحمتای دوستان رو جبران کنم.

ممنونم

mahdi.akbari
یک شنبه 14 خرداد 1391, 14:06 عصر
با تشکر از دوستانی که جواب دادند ولی هنوز برای من یه جاهایی ابهام داره ... در مثال دوستی که این کد رو نوشته بودند
MyClass mc = new MyClass();

//creating delegate objects and assigning appropriate methods
//having the EXACT signature of the delegate
Calculate add = new Calculate(mc.add);
Calculate sub = new Calculate(mc.sub);

//using the delegate objects to call the assigned methods
Console.WriteLine("Adding two values: " + add(10, 6));
Console.WriteLine("Subtracting two values: " + sub(10,4));

//waiting for user key-stroke
Console.ReadLine();
در این مثال Calculate از نوع Delegate تعریف شده است و متدهای Add و sub متدهای کلاس Myclass هستند که به Calculate نسبت داده شده اند خب ما می تونیم مستقیم از همین متد ها بدون نیاز به تعریف Delegate استفاده کنیم ، اصل سوال من این است که در چه مواردی مجبور به استفاده از Delegate ها می شویم ؟

hunter_ara
یک شنبه 14 خرداد 1391, 14:26 عصر
با تشکر از دوستانی که جواب دادند ولی هنوز برای من یه جاهایی ابهام داره ... در مثال دوستی که این کد رو نوشته بودند
MyClass mc = new MyClass();

//creating delegate objects and assigning appropriate methods
//having the EXACT signature of the delegate
Calculate add = new Calculate(mc.add);
Calculate sub = new Calculate(mc.sub);

//using the delegate objects to call the assigned methods
Console.WriteLine("Adding two values: " + add(10, 6));
Console.WriteLine("Subtracting two values: " + sub(10,4));

//waiting for user key-stroke
Console.ReadLine();
در این مثال Calculate از نوع Delegate تعریف شده است و متدهای Add و sub متدهای کلاس Myclass هستند که به Calculate نسبت داده شده اند خب ما می تونیم مستقیم از همین متد ها بدون نیاز به تعریف Delegate استفاده کنیم ، اصل سوال من این است که در چه مواردی مجبور به استفاده از Delegate ها می شویم ؟

در حالت نرمال نیازی نیست و شما میتونی بدون دلیگیت کار کنی!
استفادش بر میگرده به نیاز و سبک برنامه نویسی شما!

سوال شما مثل این میمونه که بگی وقتی فایل هست چرا بریم سراغ دیتابیس!
یا مثلا Multithereading !!!

سمپل ساده دادم که متوجه بشین چجوری استفاده میشه!

samadblaj
یک شنبه 14 خرداد 1391, 14:42 عصر
به این لینک (http://barnamenevis.org/showthread.php?95001-1001-نکته-در-سی-شارپ&p=476177&viewfull=1#post476177) و این لینک (http://barnamenevis.org/showthread.php?117839-Custom-Event-Handling-in-C-Part1-Delegates) و لینک (http://barnamenevis.org/showthread.php?171674-کاربرد-ها-و-مزایای-delegate-ها)یه سر بزن . :گیج:

hunter_ara
یک شنبه 14 خرداد 1391, 15:25 عصر
به این لینک (http://barnamenevis.org/showthread.php?95001-1001-نکته-در-سی-شارپ&p=476177&viewfull=1#post476177) و این لینک (http://barnamenevis.org/showthread.php?117839-Custom-Event-Handling-in-C-Part1-Delegates) و لینک (http://barnamenevis.org/showthread.php?171674-کاربرد-ها-و-مزایای-delegate-ها)یه سر بزن . :گیج:

دوست عزیز خوبه که سرچ میکنی!
منم Multithereading و Event-handling رو گفتم خدمتتون!

راجعب بقیش هم ممنون از شما که لینک گذاشتین و به اطلاعات منم اضافه کردین! :خجالت:

ahmadreza517
یک شنبه 14 خرداد 1391, 17:24 عصر
ببخشید من همیشه تشکر میکردم ، یه لحظه حواسم نبود اگه به آمارمم نگاه کنی از تمامی پست های با ارزش و محتوا تشکر کردم و بیشتر یه مصرف کننده بودم امیدوارم بتونم تو آینده ای نزدیک زحمتای دوستان رو جبران کنم.

ممنونم

دوست عزیز استفاده از delegate در برنامه بیشتر برای Event در برنامه استفاده می شه