בחר את סוג הנתונים הנכון
הוצגת בפניך ההפרש בין סוגי ערכים וסוגי הפניות, וכן סוגי נקודות אינטגרליים וצפה.
נניח שהעבודה שלך היא לבנות יישום חדש שאחזר, יטפל בו ויאחסן סוגים שונים של נתונים. בא בסוגי הנתונים שבהם אתה משתמש?
במקרים מסוימים, זו בחירה קלה. לדוגמה, כאשר עליך לעבוד עם טקסט, string ברירת המחדל היא להשתמש בסוג הנתונים, אלא אם עליך לבצע כמות משמעותית של שרשור.
אך מה לגבי עבודה עם נתונים מספריים? קיימות 11 אפשרויות שונות. כיצד ניתן לבחור את סוג הנתונים הנכון?
בחר את סוג הנתונים הנכון
עם כל כך הרבה סוגי נתונים לבחר, באילו קריטריונים עליך להשתמש כדי לבחור את סוג הנתונים הנכון עבור המצב המסוים?
בעת הערכת האפשרויות שלך, עליך לשקול כמה שיקולים חשובים. לעתים קרובות אין תשובה נכונה אחת, אך חלק מהתשובות נכונות יותר מאחרות.
בחר את סוג הנתונים שעומד בדרישות טווח ערכי הגבול של היישום שלך
בחירת סוג נתונים יכולה לעזור לך לקבוע את הגבולות עבור גודל הנתונים שאתה עשוי לאחסן במשתנה מסוים זה. לדוגמה, אם אתה יודע שמשתנה מסוים צריך לאחסן רק מספר בין 1 ל- 10,000, אחרת הוא נמצא מחוץ לגבולות של מה שצפוי, bytesbyte אתה צפוי להימנע, ומאחר שהטווחים שלו נמוכים מדי.
יתר על כן, ייתכן שלא תזדקק ל- int, long, uint, ומ ulong מאחר שהם יכולים לאחסן נתונים נוספים מעבר לצורך. בדומה, סביר להניח שתדלג על float, double, decimal ואם לא תזדקק לערכים של שברים. אתה עשוי לצמצם אותו short ל- ushortו- , אשר שניהם עשויים להיות ניתנים להפעלה. אם אתה בטוח שלערך שלילי לא תהיה משמעות ביישום שלך, ushort תוכל לבחור (מספר שלם חיובי שאינו צוין, 0 עד 65,535). כעת, ushort כל ערך שהוקצה למשתנה מסוג מחוץ לגבול של 0 עד 65535 יציג חריגה, ובכך יעזור לך לאכוף מידת בדיקת שפיות ביישום שלך.
התחל בבחירת סוג הנתונים כך שיתאים לנתונים (לא כדי למטב את הביצועים)
ייתכן שתיתפת לבחור את סוג הנתונים שמשתמש בפחות סיביות כדי לאחסן נתונים מחשבה שהוא משפר את ביצועי היישום שלך. עם זאת, כמה מהעצות הטובות ביותר הקשורות לביצועי היישום (לדוגמה, המהירות שבה האפליקציה שלך פועלת) היא לא "למטב בטרם עת". עליך להתנגד לפיתוי לנחש בחלקי הקוד שלך, כולל בחירת סוגי הנתונים שעשויים להשפיע על ביצועי היישום שלך.
רבים מניחים שמ מכיוון שסוג נתונים נתון מאחסן פחות מידע, עליו להשתמש בפחות ממעבד המחשב ובזיכרון שלו מאשר בסוג נתונים המאחסן מידע נוסף. במקום זאת, עליך לבחור את ההתאמה המתאימה לנתונים שלך, ולאחר מכן מאוחר יותר תוכל למדוד באופן אמפירי את ביצועי היישום שלך באמצעות תוכנה מיוחדת המספקת תובנות עובדתיות על חלקי היישום המשפיעים באופן שלילי על הביצועים.
בחר סוגי נתונים בהתבסס על סוגי הנתונים של הקלט והפלט של פונקציות הספריה שנמצאות בשימוש
נניח שברצונך לעבוד עם טווח שנים בין שני תאריכים. מאחר שהיישום הוא יישום עסקי, ייתכן שתקבע שדרוש לך טווח בין 1960 ל- 2200 בלבד. ייתכן שתרצה לנסות לעבוד איתו מאחר שהוא byte יכול לייצג מספרים בין 0 ל- 255.
עם זאת, כאשר אתה מסתכל על השיטות המוכללות System.TimeSpan ב- ובכיתות System.DateTime , אתה מבינים שהם מקבלים בעיקר ערכים מסוג double ו- int. אם תבחר בsbyte- , תמיד תיציקה הלוך ושוב בין לbyte- או doubleint . במקרה זה, יהיה הגיוני יותר int לבחור אם אין צורך ברמת דיוק של תת-שניה, double ואם דרושה לך רמת דיוק של תת-שניה.
בחירת סוגי נתונים בהתבסס על השפעה על מערכות אחרות
לעתים, עליך לשקול כיצד ינצרך המידע על-ידי יישומים אחרים או מערכות אחרות, כגון מסד נתונים. לדוגמה, מערכת הסוג של SQL Server שונה ממערכת הסוג של C#. כתוצאה מכך, יש לבצע מיפוי ביניהם כדי שתוכל לשמור נתונים במסד נתונים זה.
אם מטרת היישום שלך היא ליצור ממשק עם מסד נתונים, מומלץ לשקול כיצד הנתונים מאוחסנים וכמה נתונים מאוחסנים. הבחירה בסוג נתונים גדול יותר עשויה להשפיע על הכמות (והעלות) של האחסון הפיזי הנדרש כדי לאחסן את כל הנתונים שהיישום שלך ייצור.
כאשר יש לך ספק, הישאר עם היסודות
בזמן שהבטת בכמה שיקולים, בזמן שאתה מתחיל בעבודה, למען הפשטות, אתה אמור להעדיף קבוצת משנה של סוגי נתונים בסיסיים, כולל:
-
intעבור רוב המספרים המלאים -
decimalעבור מספרים המייצגים כסף -
boolעבור ערכי True או False -
stringעבור ערך אלפאנומרי
בחר סוגים מורכבים מיוחדים עבור מצבים מיוחדים
אל תמציא מחדש סוגי נתונים אם סוג נתונים אחד או יותר כבר קיים למטרה נתונה. הדוגמאות הבאות מזהות היכן סוגי נתונים ספציפיים של .NET יכולים להיות שימושיים:
-
byte: עבודה עם נתונים מקודדים שמקורם במערכות מחשבים אחרות או שימוש בערכות תווים שונות. -
double: עבודה עם מטרות גיאומטריות או מדעיות.doubleמשמש לעתים קרובות בעת בניית משחקים הכוללים תנועה. -
System.DateTimeעבור ערך ספציפי של תאריך ושעה. -
System.TimeSpanלמשך שנים / חודשים / ימים / שעות / דקות / שניות / אלפיות השניה.
תקציר
ישנם שיקולים בעת בחירת סוגי נתונים עבור הקוד שלך, ולרוב יותר מאפשרות אחת. חשוב על הבחירות שלך, אלא אם יש לך סיבה טובה, נסה להישאר עם הסוגים הבסיסיים כגון int, decimal, string, ו- bool.