תרגיל - חקירת יסודות עיצוב מחרוזות
- 20 דקות
ביחידה זו תלמד שיטות לעיצוב מחרוזות להצגה יעילה, במיוחד במקרים המשתמשים במשתנים מרובים.
הכנת סביבת הקידוד שלך
מודול זה כולל פעילויות מעשיות שמנחה אותך לאורך תהליך הבנייה וההפעלה של קוד הדגמה. מומלץ להשלים פעילויות אלה באמצעות Visual Studio Code כסביבת הפיתוח שלך. השימוש בקוד Visual Studio עבור פעילויות אלה עוזר לך להיות נוח יותר לכתיבה והפעלה של קוד בסביבת מפתחים המשמשת מומחים ברחבי העולם.
הערה
אם השלמת מודולים אחרים של Microsoft Learn בסדרת C# זו, ייתכן שכבר יצרת תיקיית פרוייקט עבור דוגמאות קוד. במקרה זה, באפשרותך לדלג על סעיף השלבים הבא ולמחוק Project.cs את הקוד בקובץ ששימש לתרגיל קודם.
פתח את Visual Studio Code. באפשרותך להשתמש בתפריט ההתחלה של Windows (או במשאב שווה ערך עבור מערכת הפעלה אחרת) כדי לפתוח את Visual Studio Code.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, נווט אל תיקיית שולחן העבודה של Windows. אם יש לך מיקום תיקיה אחר שבו אתה שומר פרוייקטים של קוד, באפשרותך להשתמש במיקום תיקיה זה במקום זאת. להדרכה זו, הדבר החשוב הוא שיהיה לך מיקום שקל לאתר ולזכור.
בתיבת הדו-שיח פתיחת תיקיה, בחר בחר תיקיה. אם אתה רואה תיבת דו-שיח של אבטחה השואלת אם אתה נותן אמון בעורכים, בחר כן.
בתפריט מסוף קוד Visual Studio , בחר מסוף חדש. שים לב שבקשה לפקודה בלוח המסוף מציגה את נתיב התיקיה עבור התיקיה הנוכחית. לדוגמה:
C:\Users\someuser\Desktop>בשורת הפקודה של המסוף, כדי ליצור יישום מסוף חדש בתיקיה שצוינה, הקלד dotnet new console -o ./CsharpProjects/TestProject ולאחר מכן הקש Enter. פקודה זו של .NET CLI משתמשת בתבנית של תוכנית .NET כדי ליצור פרוייקט יישום חדש של מסוף C# במיקום התיקיה שצוין. הפקודה יוצרת עבורך את התיקיות CsharpProjects ו- TestProject, ומשתמשת ב- TestProject כשם
.csprojהקובץ.בלוח EXPLORER, הרחב את התיקיה CsharpProjects . אתה אמור לראות את התיקיה TestProject ושני קבצים, קובץ תוכנית C# בשם Program.cs וקובץ פרוייקט C# בשם TestProject.csproj.
בלוח EXPLORER, כדי להציג את קובץ הקוד בלוח 'עורך', בחר Program.cs.
מחק את שורות הקוד הקיימות. השתמש בפרוייקט זה של מסוף C# כדי ליצור, לבנות ולהפעיל דוגמאות קוד במהלך מודול זה.
סגור את לוח המסוף.
מהו עיצוב מורכב?
עיצוב מורכב משתמש במצייני מיקום ממוספרים בתוך מחרוזת. בזמן ריצה, כל מה שבתוך בסוגריים המסולסלים נפתר לערך שמועבר גם הוא בהתבסס על מיקומם.
דוגמה זו של עיצוב מורכב משתמשת בפעולת שירות מוכללת Format() במילת המפתח string של סוג הנתונים. עדכן את הקוד שלך בעורך קוד Visual Studio באופן הבא:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
אם אתה מפעיל קוד זה, תבחין בפלט הבא.
Hello World!
יש כמה דברים חשובים שיש לציין בנוגע לקוד זה.
- סוגי נתונים ומשתנים מסוג נתונים נתון כוללים "שיטות עוזרות" מוכללות כדי להקל על משימות מסוימות.
- המחרוזת המיללולית
"{0} {1}!"יוצרת תבנית, שחלקים שלה מוחלפים בזמן ריצה. - האסימון
{0}מוחלף בארגומנט הראשון לאחר תבנית המחרוזת, במילים אחרות, הערך של המשתנהfirst. - האסימון
{1}מוחלף בארגומנט השני לאחר תבנית המחרוזת, במילים אחרות, הערך של המשתנהsecond.
הערה
אתה עשוי לחשוב שזה מוזר להתחיל עם המספר 0. למעשה, הדבר נפוץ מאוד בפיתוח תוכנה. בכל פעם שקיים רצף של פריטים שניתן לזהות באמצעות מספר, המספור בדרך כלל מתחיל ב- 0.
עדכן את הקוד שלך באופן הבא:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד. אתה אמור לראות את הפלט הבא:
World Hello! Hello Hello Hello!
כמה תצפיות לגבי דוגמאות אלה:
- עבור המשפט הראשון
Console.WriteLine(), שים לב שניתן לארגן את האסימונים בכל סדר. הקוד לדוגמה מכיל לפני{1}{0}. - עבור המשפט השני
Console.WriteLine(), שים לב שניתן לעשות שימוש חוזר באסימונים עם שלושה מופעים של{0}. כמו כן, ארגומנט המשתנה השני,second, אינו בשימוש. עם זאת, הקוד עדיין פועל ללא שגיאה.
מהי אינטרפולציה של מחרוזות?
אינטרפולציה של מחרוזות היא טכניקה שמפשטת עיצוב מורכב.
במקום להשתמש אסימון ממוספר String.Format()Console.WriteLine(), כולל הערך המיללול או שם המשתנה ברשימת ארגומנטים אל או , באפשרותך פשוט להשתמש בשם המשתנה בתוך סוגריים מסולסלים.
כדי שהמחרוזת תהיה עם אינטרפולציה, עליך להוסיף אותה בקידומת
$עם ההוראה. כעת, צור את אותן דוגמאות מהגירסה הקודמת באמצעות אינטרפולציה של מחרוזות במקום עיצוב מורכב. עדכן את הקוד שלך באופן הבא:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד. אתה אמור לראות את הפלט הבא:
Hello World! World Hello! Hello Hello Hello!
הערה
אם אתה מעיין בדוגמאות קוד בספרים ובמקוון, ייתכן שתראה שימוש הן בעיצוב מורכב והן באינטרפולציה של מחרוזות, אך בדרך כלל עליך לבחור אינטרפולציה של מחרוזות.
עיצוב מטבע
ניתן להשתמש בעיצוב מורכב ובאינטרפולציה של מחרוזות כדי לעצב ערכים עבור תצוגה בהינתן שפה ותרבות ספציפיות. בדוגמה הבאה, :C מציין תבנית המטבע משמש כדי להציג את המשתנים price ואת discount כמטבע. עדכן את הקוד שלך באופן הבא:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
אם ביצעת קוד זה במחשב שבו שפת התצוגה של Windows מוגדרת כ"אנגלית (ארצות הברית)", תבחין בפלט הבא.
Price: $123.45 (Save $50.00)
שים לב כיצד הוספת האסימונים :C בתוך סוגריים intdecimalמסולסלים מעצב את המספר כמטבע, בין אם אתה משתמש או .
הערה
מה קורה אם המדינה/האזור והשפה שלך אינם ידועים? אם אתה מפעיל את הקוד הקודם ב-"in-browser" .NET Editor, כגון ב- TrydotNet , תראה את הפלט הבא: Price: ¤123.45 (Save ¤50.00). הסימן ¤ משמש במקום הסימן עבור הכסף של המדינה/האזור שלך. זהו סמל כללי המשמש כדי לציין "מטבע" ללא קשר לסוג המטבע. אתה רואה סמל זה בעורך .NET מאחר שהוא מתעלם מהמיקום הנוכחי שלך.
כיצד המדינה/האזור והשפה של המשתמש משפיעים על עיצוב מחרוזת
מה קורה אם אתה מבצע את הקוד הקודם במחשב בצרפת שבו שפת התצוגה של Windows מוגדרת לצרפתית? במקרה זה, תראה את הפלט הבא.
Price: 123,45 € (Save 50,00 €)
הסיבה לפלט הקודם של "€" היא שתכונת עיצוב מטבע המחרוזת תלויה בהגדרת המחשב המקומי עבור התרבות. בהקשר זה, המונח "תרבות" מתייחס למדינה/לאזור ולשפה של משתמש הקצה. קוד התרבות הוא מחרוזת של חמישה תווים שבה מחשבים משתמשים כדי לזהות את המיקום והשפה של משתמש הקצה. קוד התרבות מבטיח שניתן יהיה להציג כראוי מידע מסוים, כגון תאריכים ומטבע.
לדוגמה:
- קוד התרבות של דובר אנגלית בארה"ב הוא
en-US. - קוד התרבות של דובר צרפתי בצרפת הוא
fr-FR. - קוד התרבות של דובר צרפתי בקנדה הוא
fr-CA.
התרבות משפיעה על מערכת הכתיבה, לוח השנה המשמש, סדר המיון של המחרוזות והעיצוב של תאריכים ומספרים (כגון מטבע עיצוב).
למרבה הצער, ודא שהקוד שלך פועל כראוי בכל המחשבים, ללא קשר למדינה/לאזור או לשפת משתמש הקצה, מאתגרת. תהליך זה נקרא התאמה לשפות אחרות (או גלובליזציה). ההתאמה לשפות אחרות תלויה בגורמים רבים שאינם נדונו במודול זה, אך פשוט, תחביר עיצוב המחרוזת עשוי להשתמש בתבנית שונה בהתאם לתרבות של המשתמש.
עיצוב מספרים
בעת עבודה עם נתונים מספריים, ייתכן שתרצה לעצב את המספר לקריאות על-ידי הכללת פסיקים כדי להוסיף קווים לאלפים, מיליונים, מיליארדים וכן הלאה.
N מציין התבנית המספרית הופך מספרים לקריאים יותר. עדכן את הקוד שלך באופן הבא:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
אם אתה מציג זאת מהתרבות en-US , תבחין בפלט הבא.
Measurement: 123,456.79 units
כברירת מחדל, N מציין התבנית המספרית מציג שתי ספרות בלבד לאחר הנקודה העשרונית.
אם ברצונך להציג דיוק רב יותר, באפשרותך לעשות זאת על-ידי הוספת מספר אחרי המציין. הקוד הבא יציג ארבע ספרות לאחר הנקודה העשרונית באמצעות N4 המציין. עדכן את הקוד שלך באופן הבא:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
אם אתה מציג זאת מהתרבות en-US , תבחין בפלט הבא.
Measurement: 123,456.7891 units
עיצוב אחוזים
השתמש במציין P התבנית כדי לעצב אחוזים ועגולים ל- 2 מקומות עשרוניים. הוסף מספר לאחר מכן כדי לשלוט במספר הערכים המוצגים לאחר הנקודה העשרונית. עדכן את הקוד שלך באופן הבא:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
אם אתה מציג זאת מהתרבות en-US , תבחין בפלט הבא.
Tax rate: 36.79%
שילוב גישות עיצוב
משתני מחרוזת יכולים לאחסן מחרוזות שנוצרו באמצעות טכניקות עיצוב. בדוגמה הבאה, מספרים עשרוניים והתוצאות המתמטיות yourDiscount העשרוניות מעוצבות ולאחסן אותן במחרוזת באמצעות עיצוב מורכב.
עדכן את הקוד שלך באופן הבא.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
Console.WriteLine(yourDiscount);
אם אתה מציג זאת מהתרבות en-US , תבחין בפלט הבא.
You saved $7.56 off the regular $67.55 price.
באפשרותך לשלב מחרוזות מעוצבות מרובות. בנה על הקוד הקודם שרשור yourDiscount += $"A discount of {(price - salePrice)/price:P2}!"; האחוז המחושב באמצעות אינטרפולציה של מחרוזת במקום שרשור מחרוזת על-ידי הוספת הקוד בשורה שלפני Console.WriteLine().
הערה
אין צורך להשתמש בגישה זו String.Format() של אינטרפולציה של מחרוזת.
עדכן את הקוד שלך באופן הבא.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
yourDiscount += $"A discount of {((price - salePrice)/price):P2}!"; //inserted
Console.WriteLine(yourDiscount);
אם אתה מציג יחידה זו מהתרבות en-US , תבחין בפלט הבא.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
סיכום
להלן המידע החשוב ביותר מיחידה זו לגבי עיצוב מחרוזת:
- באפשרותך להשתמש בעיצוב מורכב או באינטרפולציה של מחרוזות כדי לעצב מחרוזות.
- עם עיצוב מורכב, השתמש בתבנית מחרוזת המכילה אסימוני החלפה אחד או יותר בטופס
{0}. בנוסף, עליך לספק רשימה של ארגומנטים התואמים לאסימוני ההחלפה בהתבסס על ההזמנה שלהם. עיצוב מורכב פועל בעת שימוש ב-string.Format()או ב-Console.WriteLine(). - באמצעות אינטרפולציה של מחרוזות, אתה משתמש בתבנית מחרוזת המכילה את שמות המשתנים שברצונך להחליף מוקפים בסוגריים מסולסלים. השתמש בהוראה
$לפני תבנית המחרוזת כדי לציין שברצונך שהמחרוזת תהיה עם אינטרפולציה. - עיצוב מטבע באמצעות
:Cמציין. - עיצוב מספרים באמצעות
:Nמציין. שלוט ברמת הדיוק (מספר הערכים אחרי הנקודה העשרונית) באמצעות מספר אחרי ה-:Nlike{myNumber:N3}. - עיצוב אחוזים באמצעות
:Pמציין התבנית. - עיצוב מטבע ומספרים תלוי בתרבות של משתמש הקצה, קוד בעל חמישה תווים הכולל את המדינה/האזור והשפה של המשתמש (בהתאם להגדרות במחשב שלו).
בדוק את הידע שלך
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?