在我本周第一次编译的路上发生了一件有趣的事情。我遇到了这行代码:
if (SetFetchTab)
tabMain.SelectedIndex = 1;
...并决定,好吧,我将把它变成一个 const 以使其更具可读性,并在我使用大括号时将其括在大括号中,以防以后需要在此条件中添加其他代码:
const int FETCH_TAB = 0;
const int CONNECTION_TAB = 1;
. . .
if (SetFetchTab)
{
tabMain.SelectedIndex = CONNECTION_TAB;
}
但是后来好奇心占了上风,我决定找出 SetFetchTab 在哪里被赋值......它不是 - 除了在声明它的地方隐式分配 false/0 :
public static bool SetFetchTab;
有一次,另一种形式有条件地将 SetFetchTab 设置为 0 或 1,但该代码现在已被注释掉。所以,上面的条件永远不会为真,SelectedIndex 永远不会被分配 CONNECTION_TAB/1。那么,为什么这个块没有灰化,说明它是死代码呢?
顺便说一句,FETCH_TAB被灰色化/识别为死声明,因为 tabMain.SelectedIndex 从未分配为 0,因此我无处使用它。