我定义了一个类Matrix继承自List<double[]>,在类中定义了一个属性bool is_r_cmp_c_be_0。
我希望这个属性能够在矩阵行数大于或等于列数时为真,小于列数时为假。构造函数中可以进行判断,关键时矩阵的行列数可能发生变化。所以向问一下这种情况怎么解决。能否用{get;set;}解决呢?
代码样例:    public sealed class Matrix : List<double[]>
    {
        bool is_r_cmp_c_be_0;        public Matrix(int i, int j)
        {        }
    }

解决方案 »

  1.   

    在修改行数 或 列数的方法里,判断并修改 is_r_cmp_c_be_0 的值就ok了啊
      

  2.   

    List<> 集合对象并不支持你来监听它的改变。你应该使用 ObservableCollection<> 集合,这个类型对象才能在集合改变大小时抛出事件通知。另外,应该使用 ObservableCollection<ObservableCollection<double>> 之类的数据结构来表示二维交错集合。假设使用 ObservableCollection<double[]>的话,那么你只能监听到行的大小的改变事件,而并不能监听到列(数组)大小的改变了!
      

  3.   

    那你直接在is_r_cmp_c_be_0的属性 get方法中去逻辑判断就好啦。
      

  4.   

    举例static void Main(string[] args)
            {
                Test t = new Test();
                t.A = 10;
                Console.WriteLine(t.Result);        //True
                t.A = 3;
                Console.WriteLine(t.Result);        //False            Console.ReadLine();
            }
            public class Test
        {
            private bool result;        //A大于5返回true,否则返回false
            public bool Result
            {
                get { return A > 5 ? true : false; }
            }
                    public int A { get; set; }
        }
      

  5.   

    只在 public Matrix(int i, int j) 判断 i、j 是否合适就可以了
    并无需设置一个别人看不到的 bool is_r_cmp_c_be_0 属性来自寻烦恼
      

  6.   

    bool is_r_cmp_c_be_0
    {
    get { return 判断写在这里 }
    }