שאלה מעניינת

שאלה מעניינת

רציתי לדעת אם יש איזושהי דרך "לשתול" שורות קוד שנכתבות בתוך התוכנית בזמן הריצה שלה? אני מתכוון שלמשל אם יש לי תיבת טקסט בה אני כותב ביטוי מתמטי כמו:
((x+4)/2x)*x​
האם יש סיכוי שאוכל בתוך התוכנית להגדיר שני משתנים - y וx, ואז לתת למשתנה y את הערך של x שעובר את הפעולות שנכתבו דינמית? הרעיון הוא לא עד כדי כך הזוי אני מניח כי יש למשל את AppDomain שנותן להריץ Assemblies באופן דינמי בזמן ריצה, למרות שאני מניח שמה שאני מנסה לעשות זה צעד אחד יותר מזה (אולי שניים). וכמובן שאני יודע שאפשר לכתוב קטע קוד שיפרסס את הטקסט אבל זה אין לי כח לעשות
דרך אגב, גם אם אוכל לכתוב את הקוד בIL ולהריץ אותו דינמית זה יהיה מעניין.
 

Zeliran

New member
../images/Emo13.gifבאמת גם לי יצא לחשוב על זה

למרות שאין לי מושג אם זה אפשרי.. (מה שלא נראה לי כי אז המשתמש יצטרך גם קומפיילר, לא?
 

סומבודי

New member
אפשרי ועוד איך

Reflection.Emit מטפל בזה. אתה יכול להגדיר אסמבלי שלם בזמן ריצה.
 
מה זאת אומרת "להגדיר" אסמבלי?

אתה לא מתכוון שאני יכול לכתוב קוד סי שארפי שיהפוך לאסמבלי בזמן ריצה נכון? אז למה אתה כן מתכוון?
 
הממ

אז זה אומר שאני יכול לעשות תוכנית שיש בה תיבת טקסט גדולה שבה אני אכתוב קוד c# והוא יהפוך לאסמבלי ואני אכתוב את האסמבלי לקובץ exe ואקרא לתוכנית קומפיילר? \;
 
וואי

יש שם מודולים שיכולים להפוך קוד שנכתב דינאמית לאסמבלי? ממש מגניב
, יש מקום שאפשר לקרוא על זה (הסתכלתי בmsdn אבל אני לא מכיר את הנושא מספיק טוב כדי שזה יעזור לי)?
 

Zeliran

New member
אז אם כן..

למה באמת צריך להוריד את כל ה SDK? אם אפשר להשתמש בגרסאה למשתמשי הקצה ופשוט להשתמש ב Reflection
 

סומבודי

New member
כנס לתיעוד של ה-namespace שצייניתי.

שם תמצא את כל המחלקות הרלוונטיות. (זו שאלה על סף ה-RTFM, מהעבר הפנימי של הסף).
 
כן תודה,

נכנסתי לתיעוד, אני אלמד את זה, זה נשמע מעניין (ודרך אגב, לא הבנתי את ההערה בסוגריים, מה זה RTFM? \;)
 
למעלה