1. 程式人生 > >第十五課程式碼複用——C#計算器程式設計教學

第十五課程式碼複用——C#計算器程式設計教學

新手和老手的區別之一,就是看程式碼的簡潔程度。簡潔的辦法之一就是程式碼複用。
看著我前面圍繞等於寫了至少5個方法,其實這其中有方法也由另外的方法呼叫,這就達到了複用的目的。舉個例子,上節課講到的取反,它的程式碼就用到了SetCaclLists方法。我不能在caclString上直接取反,那樣做程式碼不是一般的長,也可能不可行。那麼怎樣實現呢?

答案是:收到取反命令,先把已經接收到的輸入串也就是caclString送入集合,然後根據i的值設定所在項的相反數,再通過還原算式顯示取反的結果。

        private void Contrary()
        {
            if (noStringAdded)
            {
                return;
            }
            try
            {
                CaclLists.Clear();
                haveDecimal = false;
                isOPAdded = false;
                i = 0;
                SwichString();
                if (CaclLists.Count == i)
                {
                    CaclLists[i - 1].StringEnter = (-decimal.Parse(CaclLists[i - 1].StringEnter)).ToString();
                }
                else
                    CaclLists[i].StringEnter = (-decimal.Parse(CaclLists[i].StringEnter)).ToString();
                CaclString = string.Concat(CaclLists);
            }
            catch (Exception ex)
            {
                Result = ex.Message;
            }
        }


所以,這也需要那個ToString覆寫方法的配合。在原有的基礎上加個判斷,那個StringEnter是不是負數,如果是,左右新增括號。

第十五課結語。分的效果並非只是為分解問題和清晰思路,它還會有其他的效應,程式碼複用是其中之一。