PDA

View Full Version : javascript:eval در C#



Beginner2013
جمعه 26 اسفند 1390, 08:47 صبح
با سلام و خسته نباشید.من تابعی مشابه تابع eval در جاوااسکریپت نیاز دارم.در واقع می خوام یه کد رو که داخل
یه متغیر string قرار داره اجرا کنم.برای مثال کد زیر تو جاوااسکریپت یه کادر پیام نشون میده.

eval("alert('hello');");


اگه تو C# هم مشابه eval وجود داشت

eval("MessageBox.Show('hello');");


ممنون میشم اگر دوستان راهنمایی کنن.

Beginner2013
یک شنبه 28 اسفند 1390, 16:43 عصر
دوستان منتظرما..

gerdioz
یک شنبه 28 اسفند 1390, 18:50 عصر
سلام دوست عزز هدفتون رو بگید شاید بتونیم بهتر کمک کنیم

Beginner2013
یک شنبه 28 اسفند 1390, 19:25 عصر
اگه جواب کلی رو بدید خیلی جاها لازمه.ولی در حال حاضر اگر میدونید لطف کنید بهم بگید که چجوری میتونم با داشتن ID یک کنترل به خود اون کنترل و خواصش دسترسی پیدا کنم.ممنون

gerdioz
دوشنبه 29 اسفند 1390, 08:43 صبح
دوست عزیز در ویندوز بر خلاف وب برای دسترسی به یک کنترل از نام اون کنترل استفاده می شود مثلا در asp اگر آی دی کنترل ما lbl1 هست برای دسترسی از آن استفاده کرده ولی در ویندوز برای دسترسی از نام استفاده کرده
Textbox1.Text="Sara";

hi level hdd
دوشنبه 29 اسفند 1390, 09:35 صبح
با سلام
توی برنامه نویسی تحت ویندوز هم میتونید با رشته ها کنترلی رو صدا بزنید. کافیست بدانید اون کامپوننت جزو کدوم قسمت هست. برای مثال فکر کنید توی یک فرم یه دکمه دارید به اسم button1 برای دسترسی به مشخصاتش میتونید بگید button1.text و راه دیگه اینه که بگید form1.controls["button1"].text یعنی شما با یک رشته به متغیر خودتون میرسید و اگه دکمه با اسم مشابه و شماره های مختلف داشته باشید میتونید در یک حلقه عملیاتتون رو روی اون انجام بدید.
تذکر: خاصیتی مثل text برای تمام کامپوننت ها وجود داره اگه میخواهید به خاصیتی دسترسی پیدا کنید که فقط مخصوص دکمه هست کافیست بنویسید
((button)form1.controls["button1"]).backcolor=color.red
من نام فرم جاری رو فرم 1 فرض کردم و میگم که کنرلی که در فرم 1 به نام باتون1 هست رو تبدیل به نوع باتون کن و سپس بک کالورش رو به رنگ قرمز در بیار.
اگه جایی مفهوم نبود بگید تا توضیح بدم

Beginner2013
دوشنبه 29 اسفند 1390, 12:58 عصر
دوست عزیز در ویندوز بر خلاف وب برای دسترسی به یک کنترل از نام اون کنترل استفاده می شود
منظورم همون نام کنترل به صورت رشته بود که به اشتباه ID نوشتم.


راه دیگه اینه که بگید form1.controls["button1"].text
باتشکر.من خاصیتی control رو تو برنامه ویندوزیم ندارم.اگر بیش تر کمک کنید ممنون میشم.
اضافه کنم یکی دیگه از استفاده های تابعی مشابه eval اینکه :
فرض کنید من در شرایطی دسترسی به یک فضای نام رو ندارم،حال اگه بیام برناممو بنویسم ویژوال استودیو برنامه رو کامپیال نمیکنه حتی
اگه اون کد درونه یک شرط نادرست باشه.برای مثال:



if (1 != 1)
{
MessageBox.Show(System.M.N.ToString());
}




Error 1 The type or namespace name 'M' does not exist in the namespace 'System' (are you missing an assembly reference?) C:\Documents and Settings\xp-user\My Documents\Visual Studio 2008\Projects\Web Reader v1.0\Web Reader v1.0\Form1.cs 30 40 Web Reader v1.0

اما اگه من بتونم برنامم به صورت رشته نگه دارم میتونم اونو تو شرایط خاص اجرا بکنم.
ممنون میشم اگر دوستان کمک کنن

hi level hdd
دوشنبه 29 اسفند 1390, 15:43 عصر
منظورتون رو بهتر بیان کنید تا بشه کمکتون کرد. تو کد نویسی هیچ چیز غیر ممکن نیست و چیزی هم نیست که تا به حال حل نشده باشه.