AOP C#在行動(續2)

今天開始寫Paser了,不過是從SharpDevelop借過來而已(不想重新發明輪子,^_^)。但是,還是對原先的代碼作了一些修改,即使到了RC2了,SharpDevelop的代碼中還是存在問題。今天看代碼是就發現了兩處。比如下面的代碼:
  static public int Compare(IList a, IList b, IComparer comparer)
  {
      if (a == null || b == null) {
          return 1;
      }
      if (a.Count != b.Count) {
          return Math.Sign(a.Count - b.Count);
      }
      int limit = (a.Count < b.Count) ? a.Count : b.Count;
      for(int i=0; i < limit; i++) {
          if (a[i] is IComparable && b[i] is IComparable) {
           int cmp = comparer.Compare(a[i], b[i]);
           if (cmp != 0) {
               return cmp;
           }
       }
   }
   return a.Count - b.Count;
  }
第二個if塊讓我迷惑了好一陣。看mono中已經糾正了,懷疑那段語句是不是在喝酒只有寫的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章