הFramework מספק לנו את הטיפוסים “הבסיסיים” הבאים: bool, char, string, System.DateTime, System.DateTimeOffset ואת שאר הטיפוסים הנומריים.
המחלקה הסטטית Convert מגדירה פונקציות המאפשרות לנו להמיר כל טיפוס בסיסי לכל טיפוס בסיסי אחר.
למרבה הצער, רוב הפונקציות האלה הן חסרות תועלות: או שהן זורקות Exception על חוסר מימוש, או לחלופין הן לא נחוצות, מאחר וכבר קיים implicit cast מתאים.
עם זאת יש שם מספר פונקציות נחמדות שכדאי להכיר.
לדוגמה, נניח שאנחנו מעוניינים להמיר מספר ממשי למספר טבעי. הדרך שאנחנו רגילים אליה היא באמצעות Explicit cast:
|
|
אלא שיש עם שיטה זו בעיה קלה (תלוי איך מסתכלים על זה) – ההסבה תמיד מקצצת את המספר.
לפעמים היינו רוצים אולי לקחת את העיגול של המספר. הפונקציה ToInt32 שמקבלת double תיתן לנו את העיגול של המספר
(ראו זאת גם כאזהרה!)
|
|
אם העיגול הזה הוא בעייתי, אפשר קודם לקרוא לMath.Round המאפשר לנו לשלוט בעיגול.
כאמור לכל טיפוס בסיסי קיים overload מתאים לConvert.ToInt32, למשל:
|
|
וכפי שצוין מעלה, בעצם קיימות פונקציות הסבה מתאימות בין כל הטיפוסים הבסיסיים. זה בעיקר שימושי להסבות ממחרוזות למשל:
|
|
המשך יום מומר לטובה!