שמירת וטעינת נתונים c# - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שמירת וטעינת נתונים c#


eido300

Recommended Posts

הכנתי מחלקה שמכילה מאפיינים שיחזיקו את הנתונים כל זמן שהתוכנה פועלת, אני רוצה ליצור משתנה שיכיל את סה"כ הוצאות/ הכנסות שהיו עד עכשיו, איך עושים את זה? ניסיתי לעשות משתנה total סטטי ציבורי, אבל הוא לא מופיע לי כשאני מנסה לקרוא לו דרך המופע של המחלקה.

איך עושים את זה?

זה הקוד

קישור לתוכן
שתף באתרים אחרים

  • תגובות 36
  • נוצר
  • תגובה אחרונה

הקוד שלך לא מתקמפל.

חוץ מזה:

א. נהוג ששם של מחלקה מתחיל באות גדולה.

ב. אל תעשה abuse ל-get/set. הם נועדים לעשות מה שצפוי שהם יעשו - set אמור לקבוע משתנה (ולדרוס את הערך ששמור שם) ו-get אמור להחזיר את מה ששמור שם. ספציפית, אם אני Details.total = 10 פעם אחת או שאני את השורה הזו פעמיים, אני מצפה שהתוצאה תהיה זהה.

קישור לתוכן
שתף באתרים אחרים

כן, לא הייתה שום בעיה.

עריכה: שניה עכשיו הוא כותב לי 4 שגיאות, 2 לגבי זה שאי אפשר להשתמש בout על מאפיינים, אבל זה לא בעיה, הוא כותב may not והוא כתב לי את זה גם על textBox וזה עבר יפה מאוד, ועוד 2 על זה שמשום מה צריך להגדיר גם את גוף הget, הגדרתי את הget והו הוריד את ההערות האלה, נשארתי רק עם ה2 הראשונות שאפשר להתעלם מהם לבינתיים.

קישור לתוכן
שתף באתרים אחרים

הנה הקוד, שיניתי את הget

הקוד שלך לא מתקמפל.

חוץ מזה:

א. נהוג ששם של מחלקה מתחיל באות גדולה.

ב. אל תעשה abuse ל-get/set. הם נועדים לעשות מה שצפוי שהם יעשו - set אמור לקבוע משתנה (ולדרוס את הערך ששמור שם) ו-get אמור להחזיר את מה ששמור שם. ספציפית, אם אני Details.total = 10 פעם אחת או שאני את השורה הזו פעמיים, אני מצפה שהתוצאה תהיה זהה.

א. צודק ,שיניתי.

ב. לא מבין מה זה abuse אבל אני מבין שהתכוונת לset של הtotal, זה לא אמור להפריע, מכיוון שאף אחד לא אמור לכתוב לtotal אלא רק לקרוא ממנו את הסה"כ שהצטבר עד עכשיו.

ג. איך לתקן? להוסיף עוד משתנה ש"יתווך" ביניהם?

קישור לתוכן
שתף באתרים אחרים

ב. הקוד צריך להיות קריא, לא רק ע"י מי שמשתמש במחלקה Details, אלא גם על ידי מי שיצטרך להשתמש בה בעתיד. תחשוב על זה שעוד שנה אתה תסתכל על הקוד הזה ולא תזכור מה בדיוק עושה המשתנה הזה total.

ג. כן. חוץ מזה, אם TryParse יכולה להיכשל אז אתה צריך להתייחס לאופציה הזו... (אם אתה לא מתייחס אז כבר עדיף להשתמש ב-Parse שתזרוק חריגה במקרה הצורך).

קישור לתוכן
שתף באתרים אחרים

ב. אז מה לעשות? לפרט בהערה מה בדיוק הוא עושה (בשביל זה יש הערות, לא?) או פשוט לשנות את הערך שלו בבנאי?

ג. תודה, אבל האמת שהתכוונתי להוסיף בהמשך משפט if שיבדוק את הפלט, אבל כרגע אני קודם כל רוצה שהקוד יעבוד.

ד. כרגע הקוד משום מה לא עובד, כנראה אחד הלחצנים מסרב לעשות את תפקידו.

List<Details> detailL = new List<Details>();

private void save_Click(object sender, EventArgs e)
{
MessageBox.Show("test");
detailL.Add(new Details(sumTb.Text, detailCb.Text, dateTb.Text, noteTb.Text));
MessageBox.Show(detailL[0].sum + "\r\n" + detailL[0].date + "\r\n" + detailL[0].detaile);
}

זה שהוא לא מראה אפילו את הmessageBox הראשונה כנראה שמישום מה הוא לא פועל, ככה שאני לא יכול לדבאג את זה ולראות אם באמת יש בעיה בקימפול ואיפה.

[ATTACH]8445[/ATTACH]

זה כל הפרוייקט, אם זה עוזר.

קישור לתוכן
שתף באתרים אחרים

ב. כמו שאמרתי, תשים לזה פונקציה ייעודית. תעשה get/set דיפולטיים, ותגדיר לך פונקציה בשם addToTotal או משהו כזה.

ד. אתה בטוח שהפונקציה רשומה לאירוע בצורה נכונה? אתה יכול לשים שם breakpoint כדי לבדוק אם היא נקראת.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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


×
  • צור חדש...