עבור לתוכן

תוספים/הרחבות וmultithreadים c#

Featured Replies

פורסם
  • מחבר

תודה על התשובות.

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

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

פורסם

א. גם בשיטה השנייה המפתחים מוגבלים. הרי הם צריכים לדעת לאיזה פונקציה אתה הולך לקרוא, לדוגמה ל-writeText.

ב. תעלה את הקוד. הכוונה שלי היא שהקוד הזה:

new object[] { textBox1.Text, textBox2.Text }

צריך להישמר בתוך משתנה (נקרא לו a) ואז ב-[a[0 ו-[a[1 יהיו לך הערכים החדשים.

פורסם
  • מחבר

זה בדיוק מה שעשיתי.

זה הגדררת המערך:

object[] parm =  new object[] {textBox1.Text, textBox2.Text };

וזה הקריאה לפונקציה:

myMethod.Invoke(obj,parm);

פורסם
  • מחבר

לא

פורסם
  • מחבר

עשיתי שינוי קטן וזה אכן מחליף את הארגומנטים במערך, את הtextBoxים זה לא משנה משום מה, למרות שלכאורה object הוא סוג של refrence ושינוי שקרה בו אמור לשנות גם את המקור (דהיינו textBox).

אם צריך עכשיו לשנות אותם ידנית זה באמת מסורבל.

בכל אופן זה הקוד.

עריכה: object באמת אמור לשנות גם את המשתנה המקורי או שאני מצפה ממנו שיעשה משהו שהוא לא אמור לעשות?

פורסם

אין שום סיבה שזה ישנה את הtextboxים. זה משנה את התוכן של המערך ושל המערך בלבד. אם אתה רוצה לשנות את הערכים של ה-textboxים אז תוסיף אחרי זה [textBox1.Text = perm[0 וכד'.

פורסם
  • מחבר

כן, על זה כתבתי שאם צריך לעדכן אותם ידנית זה נהיה מסורבל...

תודה רבה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים