פורסם 2009 בדצמבר 1715 שנים הי..תראו אני לא מצליח בתרגיל אחד שהוא אומר לי ליצור פעולה שתקבל מחסנית מסוג string שמכיל שמות, ולהחזיר מחסנית מסוג int שמכילה את מספר האותיות שיש בכל שם.למשל אני מקבל מחסנית כזו:pelemessyronaldinihoאני צריך להחזיר מחסנית 4511זה מה שעשיתי: class Porgamess { public static Stack<int> GetStringLength(Stack<string> st1) { Stack<int> sn = new Stack<int>(); Stack<string> st2 = new Stack<string>(); string str; while (!st2.IsEmpty()) { str = st2.Pop(); sn.Push(str.Length); } return sn; } }}ובMAIN static void Main(string[] args) { Stack<string> s = new Stack<string>(); s.Push("Ronaldinho"); s.Push("Messy"); s.Push("Pele"); Console.WriteLine(Porgamess.GetStringLength(s)); }וזה מחזיר לי מחסנית ריקה כיאלו... מה הבעיה?עריכה:חח איזה אידיוט יצאתי! שחכתי להשוות בין st2 = s ... כי הם אמרו "שימו לב- המחסנית המתקבלת לא תשתנה בסיום הפעולה)
פורסם 2009 בדצמבר 1815 שנים אם אסור שהמחסנית תשתנה אז להוסיף st2 = st1 לא יעזור לך כי זה פשוט יעביר reference ו-st2 יצביע לאותו אובייקט כמו-st1 ,כל שינוי שתעשה ישתקף בשניהם. מה שאתה צריך זה זה להעתיק את הערכים מ-st1 ל-st2, ככה:st2 = st1.Clone();או ככה:Stack<string> st2 = new Stack<string>(st1);
פורסם 2009 בדצמבר 1815 שנים מחבר צודק במאה אחוז.תודה על ההארה... ניראה לי אני צריך לחזור שוב על החומר.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.