פורסם 2011 ביוני 414 שנים אני אמור לכתוב תוכנית שתקבל טקסט מסויים, נק' התחלה של הטקסט ואורך ותציג אותו לדוגמא אני מכניס את המחזורת ABCDEF, נק' ההתחלה שלי היא 2 (מהאות השנייה במחרוזת) ואורך למשל 3 אז אני אמור לקבל את BCD.יש לי שגיאת קומפילציה שאומרת The name 'text' does not exist in the current context וגם The name 'length' does not exist in the current context ואין לי מושג למה.אגב אני אמור לכתוב את התוכנית עם שימוש במתודה.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T223{ class Program { //define method static string SubString(string text, int StartPosition, int length) { string ResultText = ""; for (int i = StartPosition; i < text.Length; i++) { ResultText += text[i]; } return ResultText; } static void Main(string[] args) { //read variables from user Console.WriteLine("Enter Text: "); int Text = int.Parse(Console.ReadLine()); Console.WriteLine("Enter Start Position: "); int StartPosition = int.Parse(Console.ReadLine()); Console.WriteLine("Enter Length: "); int Length = int.Parse(Console.ReadLine()); string Result = SubString(text, StartPosition, length); Console.WriteLine(Result); Console.ReadLine(); } }}
פורסם 2011 ביוני 414 שנים יש חשיבות ל-case (ז"א, שהמשתנה Text הוא לא אותו משתנה כמו text, שבו ה-t הראשונה קטנה).תחפש בקוד שלך איפה השתמשת במשתנים text ו-length, ואיך בדיוק הגדרת אותם.
פורסם 2011 ביוני 414 שנים מחבר במתודה הגדרתי את המשתנים ככה: string text, int StartPosition, int lengthובקריאה למתודה קראתי להם באותה הצורה כי ככה אני אמור לקרוא להם אז לא הבנתי מה לא בסדר אצלי.
פורסם 2011 ביוני 414 שנים לשמות של הפרמטרים של המתודה יש חשיבות רק בתוך המתודה.כשאתה קורא למתודה זה לא משנה מה השמות של הערכים, אלא רק המיקום שלהם (הרי אתה לא חייב להעביר בכלל משתנים עם שמות).
פורסם 2011 ביוני 414 שנים מחבר אז הבעיות שיש לי זה רק בגלל שקראתי למתודה עם אותם השמות כמו בהגדרת המתודה ?
פורסם 2011 ביוני 414 שנים לא.הבעיה היא שבקריאה למתודה אתה שולח לה משתנים שלא מוגדרים באותו בלוק של הפונקציה MAIN.אתה צריך לשלוח את המשתנה Text (שהגדרת ב MAIN)ולא את text שהוא משתנה פורמלי של הפונקציה SUBSTRING שהגדרת בה.כמו שאמרו לך, השפה היא Case Sensitive.כנ"ל לגבי Length.
פורסם 2011 ביוני 414 שנים מחבר אוקיי רשמתי את המשתנים כמו שרשמתם לי ועכשיו יש לי שגיאה בשורה של הקריאה למתודה:annot convert from int to string
פורסם 2011 ביוני 414 שנים זה כי התבלבלת בשורה הזאת אני מניח:int Text = int.Parse(Console.ReadLine());אתה קולט מחרוזת עושה לה המרה למ INT ושומר אותה ב INT... פספוס קטן.אמור להיות פשוט:string Text = Console.ReadLine();בכל מקרה, השגיאה היא כי אתה שולח לפונקציה INT במקום STRING.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.