我确信这将很容易回答,并且可以归因于我使用C#而不是"耳朵后面",但是我在调用函数并将值放入函数之前,然后在屏幕上写入响应.
函数和调用在PHP中完美运行(我有更多的经验)所以我认为问题更多的是在C#中使用正确的语法而不是其他任何东西.也许我还在尝试用我的PHP帽子写它?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace postcode
{
public partial class postcode_finder : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Example lat/long values entered below
Response.Write(distance(32.9697, -96.80322, 29.46786, -98.53506, "M"));
}
public double distance(double lat1, double lon1, double lat2, double lon2, char unit) {
double theta = lon1 - lon2;
double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
dist = Math.Acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == 'K')
{
dist = dist * 1.609344;
}
else if (unit == 'N')
{
dist = dist * 0.8684;
}
return dist;
}
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:: This function converts decimal degrees to radians :::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
public double deg2rad(double deg)
{
return (deg * Math.PI / 180.0);
}
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:: This function converts radians to decimal degrees :::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
public double rad2deg(double rad)
{
return (rad / Math.PI * 180.0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误说''postcode.postcode_finder.distance(double,double,double,double,char)'的最佳重载方法匹配'有一些无效的参数'.
我哪里错了?这里希望有更多技术诀窍的人可以给我一个正确方向的推动.
谢谢
Raw*_*ing 10
"M"在C#中是a string,而不是a char; 你需要使用'M'.
你得到的错误基本上说"我找不到一个被调用的函数postcode.postcode_finder.distance,它接受你给它的类型的参数".
您应该收到一个二秒的编译器错误,说明Argument 5: cannot convert from 'string' to 'char'哪个会进一步缩小问题范围.
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |