原帖
http://topic.csdn.net/u/20090921/11/45229da9-a86a-45c1-a8ba-f23ca8d299a9.html原來是實體類的問題,有一個boolen型的字段kono,在重寫的Equals方法需要用它來判斷。原來的代碼是這樣的(!Info.kono) return false;
需要改成下面這種寫法if (_kono = Info.kono
    && !_kono) return false;
如果不考慮業務邏輯,這樣寫也可以(Info.kono) return false;//即不加否定
這是什麼原理呀?詳細代碼麻煩看原帖8樓。

解决方案 »

  1.   

    (!Info.kono) return false;
    和if (_kono = Info.kono
        && !_kono) return false;
    的区别在原帖说过了,你应该用日志记录下看看Info.kono到底是什么
    估计你的值有问题
      

  2.   

    if (_kono = Info.kono
        && !_kono) return false;
    改成if (_kono == Info.kono
        && !_kono) return false;
    你原来是在赋值啊。。不是判断相等  报错报的什么错,你的Info.kono是bool类型的吗
      

  3.   

    原帖13樓    引用 9 楼 ncjcz 的回复:
        很简单
        if (_kono = Info.kono
                    && !_kono) return false;
        注意第一行,你用了一个赋值=而不是判定==

    剛開始看到你的回復的時候,我還以為是我發帖的時候copy錯了,真那樣寫,編譯應該通不過呀。
    但源代碼確實是 = 而不是 = =,改為= =後又有問題了。 
      

  4.   


    kono是這樣定義的  private bool _kono;   /// <summary>
       /// 类型控制
       /// </summary>
       public bool kono
         {
              set { _kono = value; }
              get { return _kono; }
         }
      

  5.   


    我把原來沒問題的5個界面當中的一個的Model的Equals方法,固定返回false值,也出現同樣的問題:即編輯文本框,不會馬上刷新表格。 
      

  6.   


    原先我給表格新增行是這樣的:BS.AddNew();//那麼kono值默認是false因為

    Model的Equals方法,固定返回false值,也出現同樣的問題

    因此,我手動給kono賦值為true
      Model.Tdpur004Info Info = new Model.Tdpur004Info();
                Info.kono = true;            BS.Add(Info);
    暫時就先就這樣解決吧