C# - עזרה בתרגיל עם מתודות - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

C# - עזרה בתרגיל עם מתודות


gshhar

Recommended Posts

יש לי תרגיל שאני אמור לבנות ממספר מתודות, בגדול זה לקבל 2 תאריכים ולכתוב מספר מתודות, אחת מהם היא לקחת את התאריך שמוכנס כ-3 INTs ןלהמיר אותו לסטרינג, אני מנסה לקחת את ה-day ותו תו לשרשר אותו למשתנה והקומפיילר כותב לי: 'int' does not contain a definition for 'Lenth' and no extension method 'Lenth' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace T270
{
public class Date
{
public int Day;
public int Month;
public int Year;




//method
public void setDate(int dd, int mm, int yy)
{
this.Day = dd;
this.Month = mm;
this.Year = yy;
}


//convert date to string metod
public string toString(int day, int month, int year)
{
string stDate = "";


for (int i = 0; i < day.Lenth; i++)
{


}


return stDate;
}
}


class Program
{


static void Main(string[] args)
{
Console.WriteLine("Enter The First Date: ");
Console.Write("Enter Day: ");
string dd = Console.ReadLine();


Console.Write("Enter Month: ");
string mm = Console.ReadLine();


Console.Write("Enter Year: ");
string yy = Console.ReadLine();


Console.WriteLine("Enter The Second Date: ");
Console.Write("Enter Day: ");
string dd2 = Console.ReadLine();


Console.Write("Enter Month: ");
string mm2 = Console.ReadLine();


Console.Write("Enter Year: ");
string yy2 = Console.ReadLine();


}
}
}

הבעיה שלי נמצאת במתודה שנקראת toString כשאני רושם day.Lenth

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

קודם כל, זה נקרא Length ולא Lenth.

לגבי הבעיה שלך - day הוא int. למספרים אין "אורך".

חוץ מזה, פונקציית toString לא אמורה לקבל ארגומנטים - היא אמורה להמיר את האובייקט עצמו למחרוזת, לא משהו שמגיע מחוץ לאובייקט.

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

בשום מקום בספר לא מוסבר על הפונקציה ToString ואיך אמורים לממש אותה?

מאיזה ספר אתה לומד?

אני אשמח אם תכתוב כאן את התרגיל במלואו.

בכל מקרה, זה לא ממש משנה. יש לך מחלקה בשם Date שיש לה שלושה שדות - יום, חודש ושנה. כמו שיש לך (או יכולות להיות לך) מתודות של המחלקה הזו שמחזירות את הערכים של Day/Month/Year, ככה צריכה להיות גם מתודה שמחזירה את הייצוג של התאריך כמחרוזת, מתוך הנתונים שיש בתוך האובייקט - כלומר, היא צריכה לבנות את המחרוזת מתוך השדות Day/Month/Year של האובייקט הנוכחי (this), ולא מתוך ארגומנטים שמגיעים מחוץ לפונקציה.

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

זה התרגיל:

Write a class for "Date". Assume that a year has 12 months of 30 days each.

Keep 3 private field:

int dd; int mm; int yy;

Keep the following methods:

void setDate(int dd, int mm, int yy);

string toString(); //convert date to string

Date nextDay(); //returns the date of the next day.

bool isEqual(Date d); //which returns true if both dates are equal

bool isLater(Date d); //which returns true if object's date is later than d

int difference (Date d); which returns the difference in days between the 2 dates (value will be positive if d is later than object's date)

bool isLegalDate(int dd, int mm, int yy); return true if the values are legal as dates.

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

אז למה אתה עושה דברים שהתרגיל במפורש אומר לעשות אחרת? לדוגמה, השמות של המשתנים שלך לא נכונים, הנראות (visibility) שלהם לא מתאימה (התרגיל דורש private, אתה עושה public...) וחוץ מזה התרגיל מבקש אומר לך בדיוק מה צריכה להיות החתימה של toString (כלומר, הוא לא מקבל ארגומנטים).

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

נ.ב. ערוך בבקשה את הכותרת כך שתהיה אינפורמטיבית.

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

טעות שלי, אני אמור לעשות public ולא private.

איזה שמות משתנים שלי לא נכונים ?

ובקשר למתודה toString תיקנתי אותה אבל אני לא מבין עם איזה משתנים לעבוד בפנים (אני יודע איך לשרשר למחרוזת) אני אמור לעבוד בפנים עם DAY, MONTH ו-YEAR ?

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

ארכיון

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

×
  • צור חדש...