פורסם 2013 ביולי 2112 שנים בדיוק כמו שעשית את זה עד עכשיו. תיצור את האובייקט, ואז תוסיף אותו לרשימה באמצעות המתודה Add.דהיינו:Demo demo = new Demo();demo.a = "bla";demo.b = "blabla";list.Add(demo); נערך 2013 ביולי 2112 שנים על-ידי שניצל
פורסם 2013 ביולי 2112 שנים מחבר הוא כותב לי שגיאה:Error 1 'System.Collections.Generic.List<AlramClock.AlramClock>' does not contain a definition for 'time' and no extension method 'time' accepting a first argument of type 'System.Collections.Generic.List<AlramClock.AlramClock>' could be found (are you missing a using directive or an assembly reference?)
פורסם 2013 ביולי 2112 שנים מחבר ככה כתבתי את המחלקה:public class AlramClock{ public string file_name, file_safe_name; public DateTime time = new DateTime(); public bool save_alram = false;}כן הגדרתי time
פורסם 2013 ביולי 2112 שנים תקרא שוב את השגיאה ואת מה שאמרתי:בעברית ובקצרה: List לא מכיל שדה שנקרא time.
פורסם 2013 ביולי 2112 שנים לא, אני מתכוון של-List אין שדה שנקרא time. כלומר, אם יש לך אובייקט בשם x מטיפוס List (או <List<AlarmClock במקרה שלך) אז אין כזה דבר x.time.הקומפיילר מצביע על שורת הקוד הבעייתית. תסתכל עליה.
פורסם 2013 ביולי 2112 שנים מחבר אם אין כזה שדה time, איך אני יכול לאתחל את השדות של המחלקה?עריכה: מצאתי פיתרון צריך לכתוב בנאי שיאתחל את השדות האלה ואז בadd לכתוב new שם המחלקה ובסוגריים את כל מה שרוצים להכניס.כאן זה יותר ברור. נערך 2013 ביולי 2112 שנים על-ידי eido300
פורסם 2013 ביולי 2112 שנים גם טוב. אבל חשוב שתבין מה אתה כותב, ולא סתם תעתיק כמו תוכי. יכולת לעשות את זה גם בלי בנאי מיוחד (למעשה זה נהוג כשמדובר במחלקות שכל מה שהן עושות זה להחזיק מידע, כמו במקרה שלך).אני לא מבין למה התעקשת לגשת לשדה test ברשימה, במקום באובייקט ה-AlarmClock שיצרת. אפשר לראות את הקוד שניסית לכתוב קודם?
פורסם 2013 ביולי 2112 שנים מחבר תודה רבה. גם טוב. אבל חשוב שתבין מה אתה כותב, ולא סתם תעתיק כמו תוכי. יכולת לעשות את זה גם בלי בנאי מיוחד (למעשה זה נהוג כשמדובר במחלקות שכל מה שהן עושות זה להחזיק מידע, כמו במקרה שלך).איך עושים בלי בנאי? (נראה לי שהבנאי קצת מסבך את העניינים).אני לא מבין למה התעקשת לגשת לשדה test ברשימה, במקום באובייקט ה-AlarmClock שיצרת.לא ממש הבנתי למה אתה מתכוון. אפשר לראות את הקוד שניסית לכתוב קודם?הקוד עובר כל הזמן שינויים אז תגיד מאיזה שלב אתה רוצה אותו.
פורסם 2013 ביולי 2112 שנים השלב שהיה בדיוק לפני ש"גילית" את הבנאי. לא צריך את כל הקוד, רק את הפונקציה שלא הצלחת לכתוב.
פורסם 2013 ביולי 2112 שנים מחבר אני עוד לא ממש ניסיתי לכתוב את הפונקציה, קודם כל עשיתי נסיונות לראות איך עובד (כמו שאמרת אני לא רוצה להיות כמו תוכי), פשוט הוספתי לקוד מחלקה, יצרתי מערך (list) וניסתי לעדכן את המשתנים זה היה ככה בערך:זה המחלקה class AlramClock { string file_name, file_safe_name; DateTime time; bool save_alram = false; } וזה הקוד ה"סורר" demo.Add(time = DateTime.Parse(TimeToAlram.Text)); List<AlramClock> demo = new List<AlramClock>(); ניסיתי את זה בכמה צורות ושום דבר לא הצליח. נ.ב. המון תודה רבה על כל התשובות והסבלנות, ע"פ מה שכתוב אצלי היו בינינו 74 הודעות (ורק בתרגיל הזה!) אז באמת תודה רבה. נערך 2013 ביולי 2112 שנים על-ידי eido300
פורסם 2013 ביולי 2112 שנים איך ציפית שמה שעשית יעבוד?המתודה List.Add מקבלת פרמטר אחד מהטיפוס הגנרי של ה-List. כלומר במקרה שלך היא מקבלת אובייקט מסוג AlarmClock. אז מה לעזאזל אתה מנסה לעשות שם עם ה-time? בשביל להוסיף אובייקט לרשימה אתה צריך להשיג איכשהו אובייקט מסוג AlarmClock (לדוגמה, ע"י יצירתו באמצעות new) ואז להעביר אותו למתודה Add.במקרה שלך, יצרת את הרשימה (שמשום מה קראת לה demo במקום השם ההגיוני יותר - list) אבל בשום מקום לא יצרת אובייקט AlarmClock לשים בתוכה.זה נראה כאילו מה שאתה עושה זה הרבה ניסוי וטעיה, בלי באמת להבין מה הקוד שלך עושה. מאיזה מקור אתה לומד? נערך 2013 ביולי 2112 שנים על-ידי שניצל
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.