سلام.
ساده ترین راه تبدیل یه string به دستور قابل اجرا چیه؟
مثلا بصورت ساده داریم:
string Cmnd="form1.show()";
و میخوایم Cmnd اجرا بشه!
سلام.
ساده ترین راه تبدیل یه string به دستور قابل اجرا چیه؟
مثلا بصورت ساده داریم:
string Cmnd="form1.show()";
و میخوایم Cmnd اجرا بشه!
با داشتن اسم فرم من قبلا مشکل داشتم که چجوری به متداش و خصوصیاتش دسترسی پیدا کنم که با کمک دوستان فهمیدم اگه اینجوری خواستی بگو تا بگم چیکار کنی ولی اینکه کل دستور رو بدی فکر نکنم بشه !
اگه منظورتون یک قالب عمومی باشه که بشه هر رشته ای رو بصورت کد اجرا کرد، باید از CSharpCodeProvider استفاده کنید،
امکانات اش فوق العاده زیاده اما عیب بزرگی هم داره، برای اجرای نرم افزار تون فقط نصب بودن Net Framework. کافی نیست،
باید اجزاء مرتبط با کامپایلر #C (خود ویژوال استدیو) نصب باشه. یعنی اگر بخواهید فایل اجرایی نرم افزار تون رو روی سیستم دیگری
اجرا کنید مشکل ساز میشه.
اما در این حد که یک اسم شیء و اسم یک متد رو بگیره و اون متد رو روی اون شیء اجرا کنه با امکانات ابتدایی System.Reflection
هم میسره.
رجوع شود به :
ساخت dll برای رسم توابع در #C
چیزی ک دوستان گفتن درسته اما شما دقیقا میخواین چیکار کنید ک می گین باید این رشته رو اجرا کنید؟
مثلا ممکنه شما اسم فرمهاتون در بانک هست و منوهای برنامه رو می سازین و Tag هر منو اسم یک فرم هست . حالا می خواین با کلیک روی منو اون فرم باز بشه. ایا ی همچین چیزی می خواین؟ (یجورایی منوهای داینامیک داشته باشین. مثلا یک TreeView)
اگه "آره" بگین تا راهکارشو بگم من یا بقیه
کلا دارم میپرسم
همونطوری که میشه صفحات html رو دینامیک نوشت و گذاشت تو فایل سورس برنامه و اجرا بشه آیا راهی هست که بشه دستورات را درست کنیم تا یه زمانی اجرا بشه
مثلا یه مثال ساده این کدی که نوشتم یا هر دستور دیگه ای مثل این یکی:
int i=1;
int j=2;
int k=i+j;
label1.text=k.tostring();
همه این هارو بذاریم داخل یه string و بعد بخوایم اجرا بشه
اره. همونطور ک تو پست شماره 3 گفتن..یه جورایی دارین از امکانات کامپایلر خود زبان استفاده می کنید و این ک می گین کار یک کامپایلر هست در واقع