سلام
ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟
سلام
ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟
ميشه راجع به هر دوتاش هم توضيح بديد؟ممنون ميشم
e هیچ چیز نیست !!!
یک متغیر برای دسترسی به یک آبجکت.. مانند نمونه گیری هایی که تا الان انجام میدادید..
اما استاندارد دات نت برای تعریف event ها در Delegate آن ها که معمولا پارامتر دوم آن ، آرگومانی از جنس EventArgs و یا کلاسی مشتق شده از آن می باشد..
***
مثال
public delegate void ChangeEventHandler(object sender, CustomEventArgs e);
public event ChangeEventdhandler DataAdded;
CustomEventArgs کلاسی است که از EventArgs مشتق شده
public class CustomEventARgs : EventArgs
{
// members for class
}
بعضی از لغات یا کلمات برای نمونه گیری از یک سری کلاس خاص استفاده می شوند ( این فقط مرسوم است نه اجبار نه قانون و نه هیچ چیز دیگه)
مثلا موقع تعریف یک Exception در بلاک Catch از ex که نشاند دهنده exception می باشد استفاده می شوئد.
try
{
} catch(Exception ex)
{
//handle exception
}
e هم برای event ها مورد استفاده قرار می گیرید.
مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084
وب سایت : http://www.mkiani.ir
پست الکترونیک : mkiani3000@gmail.com
موفق و پیروز باشید.
مهدی کیانی
پارامتر e که معمولا در رویدادها دیده میشه، یک نمونه از کلاس EventArgs یا کلاسهای مشتق شده از اون هست که اطلاعاتی رو راجع به رویدادی که اتفاق افتاده به ما میده.ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟
مثلا در رویداد FormClosing مربوط به یک Form، پارامتر e از نوع کلاسی به نام FormClosingEventArgs است که از System.EventArgs مشتق شده و اطلاعات و قابلیتهایی راجع به رویداد FormClosing به ما ارائه میده، مثلا یکی از این خاصیت ها، Cancel هست که میتونی رویداد مورد نظر رو در زمان وقوع این رویداد Cancel کنی.
در مورد کلاس EventArgs توضیح می دین
کلاسی که از روش متغیر e مورد بحث ساخته شده است.
آخرین ویرایش به وسیله sinpin : پنج شنبه 30 خرداد 1387 در 10:43 صبح دلیل: ادغام دو پست مجزا - لطفا از ارسال پستهاي كوتاه با فواصل زماني كم خودداري كنيد.
ممنون از راهنماییتون.یعنی اینکه هر رویدادی یک e ایجاد میکنه؟یا e ثابته و در رویدادهای مختلف مقدارش عوض میشه؟منظورم اینه که آیا ما در هر برنامه یک e داریم؟یا با هر رویداد یک e مختص اون رویداد ایجاد میشه؟مثلا در رویداد FormClosing مربوط به یک Form، پارامتر e از نوع کلاسی به نام FormClosingEventArgs است که از System.EventArgs مشتق شده و اطلاعات و قابلیتهایی راجع به رویداد FormClosing به ما ارائه میده، مثلا یکی از این خاصیت ها، Cancel هست که میتونی رویداد مورد نظر رو در زمان وقوع این رویداد Cancel کنی.
مثال :
مثلا یکی از کاراش اینه که تو رویداد یک دکمه وقتی e رو صدابزنی کلیدهای صفحه کلید رو میبینید و میتونید از اونها استفاده کنید
private void btn_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.controlkey)
{
messagebox.show("کلید کنترل فشرده شد")
}
البته این یه مثال ساده بود ، اساتید توضیحات فنی دادند ، کلا چیزه مفیدیه :)
چرا در بعضی رویداد ها e متفاوت با بعضی دیگه است؟من خواستم برای جلوگیری از تغییر سایز با دابل کلیک روی Titlebar فرمم داخل رویداد SizeChanged همین e.cancel یا e.handeled=true رو بنویسم .اما e اونجا این متد یا خاصیت رو نداشت.
اگر فرق این دو هم بگید ممنون میشم.
لطفا" در مورد Delegate تحقیق کنید.
10 صفحه که بخونی هیچی نمی فهمی.
4 صفحه دیگه بخونی یه چیزایی می فهمی.
بعد از این هرچقدر بیشتر بخونی بیشتر میفهمی.
از اینجا شروع کن:
http://en.wikipedia.org/wiki/Delegate_(.NET)
http://msdn.microsoft.com/en-us/library/system.delegate.aspx