קדימות של אופרטור + על פני אופרטור ==
לפעמים כשמדבגים מאוד נוח להכניס מחרוזות ל - trace/console.
בקיצר כתבתי את הקוד הבא:
Console.WriteLine("myObj == null " + myObj == null);
להפתעתי זה הדפיס רק את הערך false ללא המחרוזת: myObj == null. (גם כשהערך היה אמור להחזיר את התוצאה true)
לאחר קצת מחשבה נזכרתי שהאופרטור + הוא לפני אופרטור ההשוואה - כלומר - מה שקרה זה הדבר הבא:
חיבור של המחרוזת myObj == null למשתנה myObj ואת התוצאה השוונו ל - null, מה שתמיד החזיר את הערך false.
כמובן שאחרי ההבנה הקוד שנכתב היה -
Console.WriteLine("myObj == null " + (myObj == null));