رادکام
برای ایجاد برنامه مربوط به مطلب زیر یک پروژه Console Application ایجاد می کنیم که در پیوست مطلب نیز قرار دارد.
در اینجا ما تعریف delegate را به شکل زیر داریم:
using System;
namespace DelegatesAndEvents
{
public delegate string OperationDelegate(string command);
public class ComputerSystem
{
public string StartApplication(string appName)
{
Console.Write("Inside ComputerSystem::StartApplication()\n");
return "Success";
}
public string StopApplication(string appName)
{
Console.Write("Inside ComputerSystem::StopApplication()\n");
return "Success";
}
public string InstallSoftware(string appName)
{
Console.Write("Inside ComputerSystem::InstallSoftware()\n");
return "Success";
}
public string UnInstallSoftware(string appName)
{
Console.Write("Inside ComputerSystem::UnInstallSoftware()\n");
return "Success";
}
public void Operation(string name, OperationDelegate oprDelegate)
{
Console.WriteLine("Result = {0}", oprDelegate(name));
}
}
}
StartApplication, StopApplication, InstallSoftware, UninstallSoftware
using DelegatesAndEvents;
ComputerSystem compsysObj = new ComputerSystem();
//User of delegate
OperationDelegate oprDelegate = new OperationDelegate(compsysObj.InstallSoftware);
Console.WriteLine("Result = {0}", oprDelegate("MyApplication"));
oprDelegate = new OperationDelegate(compsysObj.StartApplication);
Console.WriteLine("Result = {0}", oprDelegate("MyApplication"));
oprDelegate = new OperationDelegate(compsysObj.StopApplication);
Console.WriteLine("Result = {0}", oprDelegate("MyApplication"));
oprDelegate = new OperationDelegate(compsysObj.UnInstallSoftware);
Console.WriteLine("Result = {0}", oprDelegate("MyApplication"));
public string StartApplication(string appName)
{
Console.Write("Inside ComputerSystem::StartApplication()\n");
return "Success";
}
Inside ComputerSystem::StartApplication()
Result = Success
و سپس متد StopApplication را کپسوله می کنیم و دوباره از نمونه ایجاد شده Delegate به نام oprDelegate استفاده کرده و عبارت “MyApplication” را به عنوان پارامتر به آن پاس می کنیم و این کار نیز
Inside ComputerSystem::StopApplication()
Result = Success
Inside ComputerSystem::UnInstallSoftware()
Result = Success
حال برنامه را ایجاد کرده و خروجی را می بینیم: Inside ComputerSystem::InstallSoftware()
و نتیجه نیز با عبارت Success نمایش داده شده است. Inside ComputerSystem::StartApplication()
زیرا این بار متد StartApplication فراخوانی شده است و خروجی داخل متد را نمایش داده و نتیجه نیز به صورت عبارت Success نمایش داده شده است.
Inside ComputerSystem::StopApplication()
و دیگر واضح است که این بار متد StopApplication کپسوله شده بوده و متد StopApplication صدا زده شده و خروجی نمایش داده شده مربوط به عملکرد این متد است و نتیجه نیز که طبق موارد قبلی با عبارت Success نمایش داده شده است.
600بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.