我想把程序的一组坐标值 。传递给服务?遇到一些困难。。
我首先定义一个类记录每一对坐标
public  class MyPoint
    {
        private double x;
        private double y;
        public double X
        {
            get
            {
                return x;
            }
            set
            {
                x = value;
            }
        }
        public double Y
        {
            get
            {
                return y;
            }
            set
            {
                y = value;
            }
 } MyPoint[]  ptms =  new  MyPoint[];//想定义一个动态数组保存多个坐标?不知道怎么定义动态数组?Service1 proxy = new  Service1();//调用服务
          proxy.getlenth(ptms);//调用方法时,提示参数无法转化?在服务端
  [WebMethod]
        public double getlenth( MyPoint[] ptm)
        {
            return 1234567;
        } 请教这思路对吗?
有没有更好的方法?大侠急救

解决方案 »

  1.   


    MyPoint[] ptms = new MyPoint[];//想定义一个动态数组保存多个坐标?不知道怎么定义动态数组?定义时不指定,需要时,也就是确定后,再初始化:
    MyPoint[] ptms;//确定数组个数了,再初始化
     ptms = new MyPoint[count];调用窗体时,方法参数只要是MyPoint数组,应该没有问题的。
      

  2.   

    MyPoint[] ptms = new MyPoint[];//想定义一个动态数组保存多个坐标?不知道怎么定义动态数组?
    List<MyPoint> list = new List<MyPoint>();
    //赋值
    list.ToArray
      

  3.   

    你这个是类数组
    建议使用C#中的索引器,自己定义数组,内部可以无需定义长度,而且还可以索引多参化
    sample1
    class IndexClass   
    {   
        private Hashtable name = new Hashtable();   
        public string this[int index]          
        {    
            get { return name[index].ToString(); }   
            set { name.Add(index,value); }   
        }   
        public int this[string aName]         
        {   
            get  
            {   
                foreach (DictionaryEntry d in name)   
                {   
                    if (d.Value.ToString() == aName)   
                    {    
                        return Convert.ToInt32(d.Key);   
                    }   
                }   
                return -1;   
            }   
            set { name.Add(value, aName); }   
        }   
    } sample2
    //做一个这个类的索引器   
    class CourseScoreIndexer    //索引器,用于存取和查询CourseScore类   
    {   
        //ArrayList本身也是个索引器   
        private ArrayList arrCourseScore;   
        //无参构造   
        public CourseScoreIndexer()   
        {   
            //实例化   
            arrCourseScore = new ArrayList();   
        }   
        //索引器   
        //我们希望通过姓名和课程ID可以查找到一个分数   
        //索引器可以使用一个或者多个参数,而且多个参数之间可以是不同的数据类型   
        public int this[string name, int courseID]   
        {   
            get  
            {   
                foreach (CourseScore cs in arrCourseScore)   
                {   
                    if (cs.Name == name && cs.CourseID == courseID)   
                    {   
                        return cs.Score;   
                    }   
                }   
                return -1;   
            }   
            set  
            {   
                //name和courseID是索引器的参数,value是一个隐含的值(90就是value)   
                arrCourseScore.Add(new CourseScore(name, courseID, value)); //arr["张三",1]=90   
            }   
        }   
    }   
    class Test   
    {   
        static void Main()   
        {    
            //声明一个索引器   
            CourseScoreIndexer csi = new CourseScoreIndexer();   
            csi["张三", 1] = 90;   
            csi["张三", 2] = 80;   
            csi["张三", 3] = 85;   
            csi["李四", 1] = 80;   
            Console.WriteLine(csi["张三", 2]);   
        }   
    }  如要详细了解  可以去看下我的博客  陈广老师的教学 学习笔记
    C#教学第15讲索引器1(学习笔记)
    C#教学第16讲索引器2(学习笔记)
    C#教学第17讲索引器3(学习笔记)
      

  4.   

    MyPoint[] ptms = new MyPoint[];//想定义一个动态数组保存多个坐标?不知道怎么定义动态数组?
    List<MyPoint> list = new List<MyPoint>();
    //赋值
    list.ToArray
      

  5.   

    我的程序时与WebService 服务进行数组传递,好像还是不行啊?
     MyPoint pn1=new MyPoint() ;
                pn1.X = 1828490.708;
                pn1.Y = 641908.477;
     List<MyPoint> list = new List<MyPoint>();
              list.Add(pn1 );
              list.ToArray();
              proxy.Lengthlist(list);//提示参数类型无法转化!!!!!!服务端:
     [WebMethod ]
            public double Lengthlist(List<MyPoint> list1)
            {
                return 12345;
            }Webservice是不是不能直接进行数组传递啊。
      

  6.   

    list.ToArray(); 这句多余,不需要转换 ,应该删除