DCSIMG
Nullable - שלמה גולדברג (הרב דוטנט)
Sign in | Join | Help

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

Browse by Tags

חיבור של שני int כשאחד מהם מוגדר כ - nullable
16 December 09 10:52 AM | Shlomo | 1 comment(s)
כתבתי על זה בעבר אבל שוב נתקלתי בזה, שימו לב לקוד הבא class MyClass { public int id; public int ? data; public override int GetHashCode() { return id.GetHashCode() + data == null ? 0 : data.GetHashCode(); } } מה יוחזר כש - data יהיה == null ? מסתבר (כמו שהסברתי בפוסט המובא לעיל) שהמתודה תמיד תחזיר 0 ולא משנה מה הערך של id אם הערך של data הוא null
תגים:, ,
זהירות עם הפעלת += על int? או חיבור שני int?
12 June 09 08:00 AM | Shlomo | 6 comment(s)
מה דעתכם על הקוד הבא : int ? i = null ; i += 10; Console .WriteLine(i); אני הייתי בטוח שזה ידפיס 10, אבל מסתבר שהערך של i נשאר ב - null, וזה גם מתואר ב - MSDN int ? d = null ; int ? r = 10; r = r + d; Console .WriteLine(r); r חוזר להיות null. ההתנהגות הזאת היא פתח לבאגים, באופן אישי עד שלא נתקלתי בהתנהגות הזאת, הייתי בודק האם HasValue רק כשרציתי להוציא ערך אבל מהיום אני יודע שאני צריך לכתוב ככה: if (i.HasValue) { i += 10; } else { i = 10; } או : i = i.GetValueOrDefault() + 10; או : i = i ?? 10;
תגים:, ,