PDA

View Full Version : لطفاً من رو راهنمایی کنید (Dll و event) در C#



als_1360
سه شنبه 02 مرداد 1386, 20:19 عصر
با سلام به دوستان
من در یک برنامه از یک dll که خودم نوشتم استفاده می کنم
چطور می توانم در برنامه از تغییر لحظه ای یک مقدار در dll متوجه بشوم.
به طور مثال یک متغییر ali در dll داریم
وقتی برنامه اجرا می شه یک فرم از داخل Dll نمایش داده می شود و به فرض مقدار reza را از کاربر می پرسه اگر کاربر روی دکمه OK کلیک کنه و مقدار reza ، صحیح باشه متغییر ali مقدار 1 روی می گیره .
حال اگر متغییر ali مقدار 1 داشت برنامه یک فرم دیگر را نمایش می دهد در غیر اینصورت کار دیگری می کند.
این کار می تونه با استفاده از حلقه ها انجام بشه ولی من می خواهم اگر بشه با استفاده از eventها این کار انجام بشه و یا روش دیگری که شما بگید.
در ضمن من اصلاً بلد نیستم یک Event داخل یک Dll را بنویسم و داخل یک برنامه دیگر فراخوانی کنم.(من تازه کار هستم)
از مدیران خواهشمندم این تاپیک رو به بخش سی شارپ منتقل کنند.

اَرژنگ
سه شنبه 02 مرداد 1386, 21:46 عصر
با سلام به دوستان
من در یک برنامه از یک dll که خودم نوشتم استفاده می کنم
چطور می توانم در برنامه از تغییر لحظه ای یک مقدار در dll متوجه بشوم.
به طور مثال یک متغییر ali در dll داریم
وقتی برنامه اجرا می شه یک فرم از داخل Dll نمایش داده می شود و به فرض مقدار reza را از کاربر می پرسه اگر کاربر روی دکمه OK کلیک کنه و مقدار reza ، صحیح باشه متغییر ali مقدار 1 روی می گیره .
حال اگر متغییر ali مقدار 1 داشت برنامه یک فرم دیگر را نمایش می دهد در غیر اینصورت کار دیگری می کند.
این کار می تونه با استفاده از حلقه ها انجام بشه ولی من می خواهم اگر بشه با استفاده از eventها این کار انجام بشه و یا روش دیگری که شما بگید.
در ضمن من اصلاً بلد نیستم یک Event داخل یک Dll را بنویسم و داخل یک برنامه دیگر فراخوانی کنم.(من تازه کار هستم)
از مدیران خواهشمندم این تاپیک رو به بخش سی شارپ منتقل کنند.
۱-این چیزی که به نام دی‌ال‌ال بهش اشاره میکنیید دی‌ال‌ال نیست ، دات نت اسمبلی فایل است (اگر در دات نت نوشته شده.)
۲ـ روش دید‌ه‌تان را عوض کنید، داشتن یک متقییر در دی‌ال‌ال بی معنی است. معولا یک کلاس را که در اسمبی فایل تعریف کردید را میتوانید در برنامه تان استفاده کنید، همانطوری که اگر کدش جزوه برانمه‌تان بود.
۳ـاین کار به event ربطی نداره، به فرم اولتان یک پروپرتی اضافه کنید و در برنامه تصمیم بگیرید که با وجوده چه مقدار در این پروپرتی فرم دوم را نشان بدید . به جایه مقدار ۱ از یک enum معنی‌دار استفاده کنید.
۴-اگر یک برنامه را به طوری درستی بنویسید ، میتوانید قسمت ۲ تا فرم را به یک اسمبلی جداگانه فاکتور کنید.
۵ـ اگر یکمقداری اصول شئیگرا را مطالعه کنید دیدگاهتان با این مسئله و روش حلش به خوبی عوض میشه.
۶-این متغییرات علی و رضا یکی از بدترین روش نام دادن به متغییر است، اگرچه اینکه چرا برایه توضیح مسئله ازشان استفاده کردید را درک میکنم، ولی نامه متغییرارتان باید یک ربطی به درک کردن مسئله با خواندن کد داشته باشه، شما اگر مشکل اصلیتان را بازگو کنید جواب بهتر دریافت خواهید کرد، چونکه در این حالت شما دارید نهوه پیاده کردن یک روش غلط را به یک مسئله‌ای که بازگو نکرده‌اید دارید میپرسید.
۷ـایونت نوشتن به دی‌ال‌ال (اسمبلی فایل) ربطی نداره، اگر بتوانید به یک فرم در برنامه معمولی یک ایونت اضافه کنید همانطور هم برایه یک فرم که دریک اسمبلی بکار رفته استفاده میشه.