מתודות פלט

סגור באמצעות טופס זה תוכלו לספר ולהמליץ לחבריכם..
שם השולח:
כתובת דוא"ל של השולח:
שם המקבל:
שלח לכתובת דוא"ל:
הוסף הערה:
במחלקה Console מוגדרות שתי מתודות הפלט הבאות: Console.WriteLine מדפיסה על המסך ויורדת שורה. Console.Write מדפיסה על מסך ולא יורדת שורה. מאמר זה עוסק במתודות הפלט וביצירת מחזורת פלט תוך שימוש במרקרים.



מתודות פלט
 
מאת: ארז קלר


 להורדת דוגמאות הקוד

 
עם המחלקה Console כבר ערכנו הכרות מאוד ראשונית ובסיסית.מתודות פלט Console.Write Console.WriteLine
את המתודה Console.WriteLine אנחנו כבר מכירים, אבל רק על קצה המזלג.
את המתודה Console.Write אנחנו עדיין לא מכירים.
במאמר זה נצלול קצת יותר פנימה ונכיר יותר לעומק את יכולות המחלקה והמתודות.
  • Console.WriteLine מדפיסה על המסך ויורדת שורה.
  • Console.Write מדפיסה על מסך ולא יורדת שורה.
וזה ההבדל היחידי בין המתודות.
לדוגמה (ConsoleWriteSample):
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Console.Write("Hello "); 
 6  :         Console.Write("World "); 
 7  :     } 
 8  : } 
פלט:
פלט התוכנית ConsoleWriteSample

המתודות הללו יכולות לקבל כל סוג של מידע ולהציגו, לדוגמה (ConsoleWriteSample02):
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Console.WriteLine("Hello World"); 
 6  :         Console.WriteLine(123); 
 7  :         Console.WriteLine(123.456); 
 8  :         Console.WriteLine('A'); 
 9  :         int num = 123; 
 10 :         double dnum = 678.123; 
 11 :         Console.Write(num); 
 12 :         Console.Write(" + "); 
 13 :         Console.Write(dnum); 
 14 :         Console.Write(" = "); 
 15 :         Console.Write(num + dnum); 
 16 :         Console.WriteLine(); 
 17 :     } 
 18 : } 
בשורה 5 המתודה מקבלת פרמטר מטיפוס string,
בשורה 6 המתודה מקבלת פרמטר מטיפוס int,
בשורה 7 המתודה מקבלת פרמטרמטיפוס double,
בשורה 8 המתודה מקבלת פרמטר מטיפוס char.
(למעשה מאחורי הקלעים מדובר על מתודות שונות בעלות אותו השם, ליכולת הזאת קוראים העמסת מתודות או Method Overloading באנגלית, אבל אל זה נרחיב במאמר אחר)

פלט:
פלט התוכנית ConsoleWriteSample02

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

הגדרת מחרוזת הפלט ( Text Formatting) 
שימוש בסמנים (Markers)
המתודות Write ו- WriteLine מאפשרות לפרמט את הפלט על ידי שימוש בסמנים (Markers).
"פירמוט" הוא היכולת לקבוע את מבנה וצורת הפלט,
סמן הוא "שומר מקום" למידע שברצוננו להדפיס.
לדוגמה:
Console.WriteLine("The Sum of {0} and {1} is {2}.",12,23,12+23);
הפלט:
The Sum of 12 and 23 is 35
 
{2}, {1}, {0} – הם סמנים, סמנים הם שומרי מקום למידע שיוגדר בשלב מאוחר יותר במתודה.
על המסך לא נראה את הסמנים אלא את המידע שהחליף אותם.
בדוגמה, הסמן {0} מוחלף על ידי הערך 12, הסמן {1} מוחלף על ידי 23 והסמן {3} מוחלף על ידי תוצאת הסיכום 12+23.
 
מתודות הפלט מחייבות לשמור על מספור עוקב של הסמנים, אולם הסמנים אינם חייבים להופיע על פי הסדר, לדוגמה:
Console.WriteLine("The Sum of {2} and {1} is {0}.",12,23,12+23);
גם בדוגמה זו הסמן {0} מוחלף על ידי 12 (למרות שהוא הסמן האחרון), הסמן {1} מוחלף על ידי 23  והסמן השלישי {2} מוחלף על ידי תוצאת הסיכום 12+23.
הפרמטר היחידי שקובע הוא לא סדר הופעת הסמנים אלא המספור שלהם:
{0} – תמיד יוחלף על ידי הפרמטר מידע הראשון.
{1} – תמיד יוחלף על ידי הפרמטר מידע השני.
{2} – תמיד יוחלף על ידי הפרמטר מידע השלישי.
וכיוצא בזה.....
{99} – תמיד יוחלף על ידי הפרמטר מידע מספר 100.
 
כל סמן יכול להופיע יותר מפעם אחת במחרוזת הפלט,
בדוגמה השלישית כל אחד מהמספרים 11,22,33 יודפס 3 פעמים.
Console.WriteLine(“{0}{1}{2}{0}{1}{2}{0}{1}{2}”,11,22,33);


דוגמת קוד (ConsoleMarker):
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Console.WriteLine("The Sum of {0} and {1} is {2}.", 12, 23, 12 + 23); 
 6  :         Console.WriteLine("The Sum is {2} , Result of {1} + {0}.", 12, 23, 12 + 23); 
 7  :         Console.WriteLine("{0}{1}{2}{0}{1}{2}{0}{1}{2}", 11, 22, 33); 
 8  :     } 
 9  : } 
פלט:
פלט תוכנית הדוגמה ConsoleMarker

הגדרת מרווחים
על מנת לשמור על מרווחים אחידים בפלט ניתן לקבוע כמה תווי מסך יוקצו לכל Marker
ו- Marker:
Console.WriteLine("The Sum of {0,10} and {1,10} is {2,10}.",12,23,12+23);
הפלט:
The Sum of         12 and         23 is         35
בדוגמה זו נקבע כי הערכים שיחליפו את שלושת הסמנים ישתרעו על פני 10 תווי מסך, כאשר היישור יהיה לצד ימין.
 
הדוגמה הבאה מציגה מרווח , אולם עם יישור לצד שמאל.
Console.WriteLine("The Sum of {0,-10} and {1,-10} is {2,-10}.",12,23,12+23);
 
הפלט:
The Sum of  12         and 23         is 35       .


דוגמת קוד: ConsoleSpaces:
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Console.WriteLine("The Sum of {0,10} and {1,10} is {2,10}.", 12, 23, 12 + 23); 
 6  :         Console.WriteLine("The Sum of {0,-10} and {1,-10} is {2,-10}.", 12, 23, 12 + 23); 
 7  :     } 
 8  : } 
פלט:
פלט תוכנית הדוגמה ConsoleMarker
 
 


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

   
 
 
 



 



כל הזכויות שמורות למחבר ©