delegate در سی شارپ
سلام دوستان امروز میخواهیم به مبحث delegate در سی شارپ بپردازیم.delegate ها عملکردی مشابه به متغیر ها دارند برا مثال متغیری از نوع string رشته های متنی را در خودت نگه میدارد و delegate ها هم همین کار را انجام می دهند با این تفاوت که متد ها را در خود نگه میدارند.
شکل تعریف delegate ها بصورت زیر میباشد:
{پارامتر های ورودی}{نام} {مقدار برگشتی} delegate {سطح دسترسی}
به مثال زیر توجه کنید:
1 | public delegate int MyDelegate(int num1, int num2); |
تا اینجا ما یک delegate تعریف کردیم اما طریقه استفاده از ان چطور است؟
ابتدا یک متد تعریف میکنیم و برای مثال نام ان را MyMethod قرار دادیم:
1 2 3 4 5 6 7 | static void Main(string[] args) { } public static int MyMethod(int num1, int num2) { return num1 + num2; } |
1 2 3 4 5 6 | static void Main(string[] args) { MyDelegate md = MyMethod; Console.WriteLine(md(4, 3)); Console.ReadKey(); } |
Multicast Delegate چیست؟
در ادامه به بررسی Multicast Delegate ها میپردازیم.منظور از Multicast Delegate نگه داری تعداد بیشتر متد در delegate است.خب ایتدا دو متد ساده تعریف میکنیم به صورت زیر :
1 2 3 4 5 6 7 8 | public static void sum(int num1, int num2) { Console.WriteLine(num1 + num2); } public static void Sub(int num1, int num2) { Console.WriteLine(num1 - num2); } |
سپس delegate را تعریف میکنیم:
1 | public delegate void MyDelegate(int num1, int num2); |
1 2 3 4 5 6 7 8 9 10 | class Program { static void Main(string[] args) { MyDelegate md = Sum; md += Sub; md(4, 3); Console.ReadKey(); } } |
امیدوارم از اموزش راضی بوده باشید و برایتان مفید بوده باشد.
موفق باشید..
خداوکیلی اگه فهمیده باشم!!!
بهتره ابتدا با مباحث اولیه مانند متغیر ها و توابع اشنا بشید.
خیلی خوب توضیح دادین ، سایتهای زیادی را گشتم ولی مثالهای ساده و توضیحات روان خیلی قابل فهمش کرده بود . مچکرم .
خواهش می کنم موفق باشید.