我想把程序的一组坐标值 。传递给服务?遇到一些困难。。
我首先定义一个类记录每一对坐标
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;
} 请教这思路对吗?
有没有更好的方法?大侠急救
我首先定义一个类记录每一对坐标
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;
} 请教这思路对吗?
有没有更好的方法?大侠急救
MyPoint[] ptms = new MyPoint[];//想定义一个动态数组保存多个坐标?不知道怎么定义动态数组?定义时不指定,需要时,也就是确定后,再初始化:
MyPoint[] ptms;//确定数组个数了,再初始化
ptms = new MyPoint[count];调用窗体时,方法参数只要是MyPoint数组,应该没有问题的。
List<MyPoint> list = new List<MyPoint>();
//赋值
list.ToArray
建议使用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(学习笔记)
List<MyPoint> list = new List<MyPoint>();
//赋值
list.ToArray
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是不是不能直接进行数组传递啊。