می خوام هر وقت مقدار یک متغیر توی یکی از متدها تو کلاسی که نوشتم برار با مقدار خاصی شد کلاس یه event صادر کنه
میشه همچین کاری کرد؟؟؟
راهنمایی لطفا؟؟؟؟
vC# باشه لطفا.
می خوام هر وقت مقدار یک متغیر توی یکی از متدها تو کلاسی که نوشتم برار با مقدار خاصی شد کلاس یه event صادر کنه
میشه همچین کاری کرد؟؟؟
راهنمایی لطفا؟؟؟؟
vC# باشه لطفا.
public event xChanged ChangeXValue;
public delegate void xChanged(object source, EventArgs e);
int tmpX;
public int x
{
get
{
return tmpX;
}
set
{
tmpX = value;
if (value == 10)
{
if (ChangeXValue != null)
ChangeXValue(tmpX, EventArgs.Empty);
}
}
}
خب فک کنین x اون متغییر شماست
ببین عامل ها (delegate) در واقع یه نوع اشارگر به فراخوانی توابع هستند و رویداد ها بر اساس عامل ها تعریف میشن تو عامل که مشخص میشه متدی که به رویداد شما اضافه میشه خروجیش و ورودیش از چه نوعی و چه تعداد ورودی داشته باشه
یعنی توی خط زیر:
public delegate void xChanged (objectsource, EventArgs e)
در واقع داره میگه که یک تابع داریم به اسم xChanged که وقتی event صادر شد این مند اجرا میشه. و این متد دو تا پارامتر داره و خروجی نداره
درست فهمیدم؟؟؟؟
اگر میشه خط 1 و 16 را هم توضیح بدبد.
درباره پارامتر های متد هم توضیح بدبد.
با تشکر
آخرین ویرایش به وسیله pidexx : یک شنبه 28 اردیبهشت 1393 در 20:24 عصر
نه دوست من ببین مثلا من میگم
public delegate int MyEventHandler(int x,int y);
بعد میام یه رویداد از نوع عاملی که تو خط بالا تعریف کردم میسازم
public event MyEventHandler EventCalled;
حالا هر متدی که من بخوام به به رویداد EventCalled اضافه کنم باید یه خروجی int و دوتا وردی int داشته باشه
مثلا
publict int Sum(int number1,int number2)
{
return number1+number2;
}
public void AddMethodToEvent()
{
MyEventCalled+=Sum;
}