landing LanS = new landing();
LanS.ReadRe(out LanS.GNanDu1, out LanS.Grow1, out LanS.Gfile1, out LanS.Gmode1);
 private int GNanDu;        public int GNanDu1
        {
            get { return GNanDu; }
            set { GNanDu = value; }
        }
        private int Grow;        public int Grow1
        {
            get { return Grow; }
            set { Grow = value; }
        }
        private int Gfile;        public int Gfile1
        {
            get { return Gfile; }
            set { Gfile = value; }
        }
        private int Gmode;        public int Gmode1
        {
            get { return Gmode; }
            set { Gmode = value; }
        }public void ReadRe(out int Nan, out int Row, out int File, out int Mode) //读取选项数据
        {
            //具体操作变量省略...   
            Nan = 1;
            Row = 2;
            File = 3;
            Mode = 4;        }
运行属性或索引不能作为OUT或REF参数传递.错误..
那我在主窗体上如何获取呢。.

解决方案 »

  1.   

    定义变量,Out之后,再给类的属性赋值,如:
    landing LanS = new landing();
    int a,b,c,d;LanS.ReadRe(out a, out b, out c, out d);LanS.GNanDu1 = a;
    LanS.Grow1 = b;
    LanS.Gfile1 = c;
    LanS.Gmode1 = d;
      

  2.   

    那没有办法了,将你的私有字段改为公有字段,改为操作公有属性        public int GNanDu;        public int Grow;        public int Gfile;        public int Gmode;        landing LanS = new landing(); 
            LanS.ReadRe(out LanS.GNanDu, out LanS.Grow, out LanS.Gfile, out LanS.Gmode);不过这样不符合OO数据封装的概念。不过从上面的代码看,对象虽然给自己传参数,还不如改ReadRe代码:public void ReadRe()
            {
                //具体操作变量省略...
                GNanDu = 1;
                Grow = 2;
                Gfile = 3;
                Mode = 4;   
            }
      

  3.   

    改ReadRe代码: 
    ....再怎么改也需要参数啊。...
      

  4.   

    问题应该在这吧
    public int GNanDu1
            {
                get { return GNanDu; }
                set { GNanDu = value; }
            }非得要操作读写的吗