עבור לתוכן

קוד לפתיחת קובץ ב#c.

Featured Replies

  • תגובות 101
  • צפיות 10.3k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

אתה יכול להביא לי דוגמת קוד איך מאתחלים כ"א מהמשתנים האלה?

פורסם

בדיוק כמו שעשית את זה עד עכשיו. תיצור את האובייקט, ואז תוסיף אותו לרשימה באמצעות המתודה Add.

דהיינו:


Demo demo = new Demo();
demo.a = "bla";
demo.b = "blabla";
list.Add(demo);

נערך על-ידי שניצל

פורסם
  • מחבר

הוא כותב לי שגיאה:

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?)

פורסם

תקרא מה הוא אומר לך. בעברית ובקצרה: List לא מכיל שדה שנקרא time.

פורסם
  • מחבר

ככה כתבתי את המחלקה:


public class AlramClock
{ public string file_name, file_safe_name;
public DateTime time = new DateTime();
public bool save_alram = false;
}

כן הגדרתי time

פורסם

תקרא שוב את השגיאה ואת מה שאמרתי:

בעברית ובקצרה: List לא מכיל שדה שנקרא time.
פורסם
  • מחבר

אתה מתכוון שlist לא יכול לכלול משתנה מסוג datetime?

פורסם

לא, אני מתכוון של-List אין שדה שנקרא time. כלומר, אם יש לך אובייקט בשם x מטיפוס List (או <List<AlarmClock במקרה שלך) אז אין כזה דבר x.time.

הקומפיילר מצביע על שורת הקוד הבעייתית. תסתכל עליה.

פורסם
  • מחבר

אם אין כזה שדה time, איך אני יכול לאתחל את השדות של המחלקה?

עריכה: מצאתי פיתרון צריך לכתוב בנאי שיאתחל את השדות האלה ואז בadd לכתוב new שם המחלקה ובסוגריים את כל מה שרוצים להכניס.

כאן זה יותר ברור.

נערך על-ידי eido300

פורסם

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

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

פורסם
  • מחבר

תודה רבה.

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

איך עושים בלי בנאי? (נראה לי שהבנאי קצת מסבך את העניינים).

אני לא מבין למה התעקשת לגשת לשדה test ברשימה, במקום באובייקט ה-AlarmClock שיצרת.

לא ממש הבנתי למה אתה מתכוון.

אפשר לראות את הקוד שניסית לכתוב קודם?

הקוד עובר כל הזמן שינויים אז תגיד מאיזה שלב אתה רוצה אותו.

פורסם

השלב שהיה בדיוק לפני ש"גילית" את הבנאי. לא צריך את כל הקוד, רק את הפונקציה שלא הצלחת לכתוב.

פורסם
  • מחבר

אני עוד לא ממש ניסיתי לכתוב את הפונקציה, קודם כל עשיתי נסיונות לראות איך עובד (כמו שאמרת אני לא רוצה להיות כמו תוכי;)), פשוט הוספתי לקוד מחלקה, יצרתי מערך (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 הודעות (ורק בתרגיל הזה!) אז באמת תודה רבה.

נערך על-ידי eido300

פורסם

איך ציפית שמה שעשית יעבוד?

המתודה List.Add מקבלת פרמטר אחד מהטיפוס הגנרי של ה-List. כלומר במקרה שלך היא מקבלת אובייקט מסוג AlarmClock. אז מה לעזאזל אתה מנסה לעשות שם עם ה-time?

בשביל להוסיף אובייקט לרשימה אתה צריך להשיג איכשהו אובייקט מסוג AlarmClock (לדוגמה, ע"י יצירתו באמצעות new) ואז להעביר אותו למתודה Add.

במקרה שלך, יצרת את הרשימה (שמשום מה קראת לה demo במקום השם ההגיוני יותר - list) אבל בשום מקום לא יצרת אובייקט AlarmClock לשים בתוכה.

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

נערך על-ידי שניצל

ארכיון

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

דיונים חדשים