bool AllowDisplay = CheckPower();
p.Visible = AllowDisplay;
if (p.Visible) { /* do something */ }
現象: AllowDisplay == true,但 if 內程式碼從未執行。
真相: p 的**父容器控件**被設為 Visible="false"。ASP.NET 控件的 Visible 屬性會向上傳遞:父容器不可見,子控件 Visible 雖為 true,實際 Control.Visible 回傳 false。
OneClass obj = GetOneClass();
if (obj == null) { /* do something */ }
現象: 在 if (obj == null) 行拋出例外(堆疊溢位)。
真相: OneClass 多載 == 運算子,但**未檢查參數是否為 null**,導致遞迴呼叫自身直到堆疊溢位。正確多載應先判斷 if (ReferenceEquals(obj, null))。
文末附上作者專案「藍點通用資訊管理系統」連結,展示實戰經驗分享精神。