آرمان
آرمان
خواندن ۲ دقیقه·۵ سال پیش

callback چیست نحوه ساخت آن در C#

بیایید ابتدا به مفهوم callback بپردازیم:

در برنامه نویسی کامپیوتر callback کد اجرایی است که به عنوان argument به کد دیگر منتقل شده است.

سی شارپ برای این منظور delegates (نمایندگان) دارد. آنها به شدت با events (رویدادها) مورد استفاده قرار می گیرند ، زیرا یک رویداد می تواند به طور خودکار تعدادی از delegates (نمایندگان) پیوست شده (event handlers) را فراخوانی کند.در واقع یک callback ، (نشانگر) pointer کد اجرایی است که به عنوان آرگومان (argument) به کد های دیگر منتقل می شود.

یک مثال برای درک بهتر در دنیای واقعی:

من فقط شما را ملاقات کردم ، و این دیوانه است ،
اما در اینجا شماره من (delegate) است ،
بنابراین اگر اتفاقی رخ دهد (event) ،
با من تماس بگیرید ، شاید (callback)؟

آهنگ Carly Rae Jepsen ?

I just met you,
And this is crazy,
But here's my number (delegate),
So if something happens (event),
Call me, maybe (callback)?

استفاده از callback معمولاً در منطق ناهمزمان (asynchronous) است.

برای ایجاد callback در C# ، باید آدرس یک function را درون یک متغیر ذخیره کنید. برای رسیدن به این منظور، استفاده از یک delegate (نماینده) یا استفاده از lambda به صورت Func یا Action حاصل می شود.

public delegate void WorkCompletedCallBack(string result); public void DoWork(WorkCompletedCallBack callback) { callback(&quotHello world&quot); } public void Test() { WorkCompletedCallBack callback = TestCallBack; // Notice that I am referencing a method without its parameter DoWork(callback); } public void TestCallBack(string result) { Console.WriteLine(result); }

امروزه در C# ، این کار با استفاده از لامبدا مانند زیر انجام میدهند:

public void DoWork(Action<string> callback) { callback(&quotHello world&quot); } public void Test() { DoWork((result) => Console.WriteLine(result)); }

منبع

stackoverflow
یک برنامه نویس که هرآنچه را که یاد میگیرد در دفترچه یادداشت ویرگولیش یادداشت میکرد(!) حتی یک خط ! تا درصورت نیاز به آن رجوع کند...
شاید از این پست‌ها خوشتان بیاید