פורסם 2010 בינואר 1115 שנים אין לי מושג למה הוא נותן לי את השגיאה הבאה:Error 1 'Unit4.CollectionsLib.Queue<int>' does not contain a constructor that takes '1' arguments C:\ConsoleApplication1\ConsoleApplication1\Class1.cs 13 30 ConsoleApplication1בפעולה הנ"ל: public static int Size(Queue<int> qt1) { int x = 0; Queue<int> qt2 = new Queue<int>(qt1); while (!qt2.IsEmpty()) { qt2.Remove(); x++; } return x; }
פורסם 2010 בינואר 1115 שנים התור שאתה עובד איתו הוא מה שמוטמע בויז'ואל סטודיו, או אחד שאתה יצרת?כי בזה של הויז'ואל אין כזו פונקציה IsEmpty.כמו שנאמר מעליי, אין לו שיטה בונה שמקבלת רק פרמטר אחד.
פורסם 2010 בינואר 1115 שנים זה לא התור של דוטנט (שים לב שהחבילה נקראת Unit4.CollectionsLib). מחיפוש קצרצר בגוגל מצאתי את החבילה באתר של האוניברסיטה העברית, אז אני מניח שזה חבילה שנכתבה בשביל איזשהו קורס כלשהו שם.
פורסם 2010 בינואר 1115 שנים מחבר מצטער אבל עדיין לא הבנתי.. מה זאת אמרת "קונסטרקטור שמקבל פרמטר אחד"?
פורסם 2010 בינואר 1115 שנים עשית כזה דבר (סלח לי שאני מפשט קצת ומעיף את ה-<int>, פשוט תעמיד פנים שהוא מופיע בכל מקום שכתבתי את המילה Queue)Queue qt2 = new Queue(qt1);כלומר, יצרת Queue חדש ע"י קריאה לבנאי (אחרי new תמיד בא בנאי), עם פרמטר אחד - qt1.אבל, ל-Queue אין שום בנאי שמקבל פרמטר אחד. לפי התיעוד כאן:http://sites.huji.ac.il/science/unit4_2007/Csharp/Unit4/Unit4Guide.htm(אני מניח שזו החבילה שאתה משתמש בה, כן?)יש ל-Queue רק בנאי שלא מקבל פרמטרים בכלל. כלומר, הדרך היחידה לאתחל Queue היא באמצעות:Queue qt2 = new Queue();יש מבין?
פורסם 2010 בינואר 1115 שנים מחבר אה... תודה רבה. עכשיו הבנתי.אז אם אני רוצה ליצור תור חדש למשל qt2 שיהיה העתק של התור qt1 מה הדרך הכי יעילה לעשות זאת?
פורסם 2010 בינואר 1115 שנים בדרך הבאה:Queue qt2 = qt1;כאשר qt1 הוא פרמטר מסוג Queue שקיבלת בתור פרמטר מהפונקציה.
פורסם 2010 בינואר 1115 שנים מחבר אבל אז שניהם יפנו לאותו תור כיאלו. אני רוצה ליצור העתק חדש של התור שאם אני אבצע בו פעולות התור הראשי יישמר...
פורסם 2010 בינואר 1115 שנים זו הפואנטה בתרגיל.כיוון שהמחלקה לא מספקת כזו פונקציונליות, תצטרך לממש אותה בעצמך באמצעות פעולות Insert/Remove.
פורסם 2010 בינואר 1115 שנים אולי זה מעבר לדרישות התרגיל, אבל אם האובייקט הוא serializable, אתה יכל ליצור העתק (deep copy ) ע"י סריאליזציה ל memoryStream.
פורסם 2010 בינואר 1115 שנים לא רק שזה מעבר לדרישות התרגיל, זה overkill מטורף, וממש לא הייתי ממליץ על הפתרון הזה. חוץ מזה, זה יגרום שכפול גם של איברי התור, ולא רק של התור עצמו.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.