これは非常に簡単に答えられると確信しており、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);
}
}
}
私が得るエラーは、「'postcode.postcode_finder.distance(double, double, double, double, char)' に一致する最適なオーバーロードされたメソッドには、無効な引数がいくつかあります」というものです。
どこが間違っていますか?もう少しノウハウを持っている人が正しい方向に向けてくれることを願っています.
ありがとう