2015-11-20 73 views
0

travellingsalesman.city類型已經包含經度的定義,我該怎麼辦?我不知道爲什麼會出現這個錯誤。 public class City { int longitude; int緯度; int DegreesToRadians;travellingsalesman.city類型已包含經度的定義,我該怎麼辦?

 public City(string name, double latitude, double longitude) 
     { 
      Name = name; 
      latitude = latitude; 
      longitude = longitude; 

     } 

     public string Name { set; get; } 
     public double Latitude { get; set; } 
     public double longitude { get; set; } 

     public double GetDistanceFromPosition(double latitude, double longitude) 
     { 
      var R = 6371; //raduis of the earth in km 
      var dLat = DegreesToRadians(latitude - Latitude); 
      var dlon = DegreesToRadians(longitude - Longitude); 
      var a = 
       Math.Sin(dLat/2) * Math.Sin(dLat/2) + 
       Math.Cos(DegreesToRadians(Latitude)) * 
       Math.Cos(DegreesToRadinas(Latitude)) * 
       Math.Sin(dlon/2) * Math.Sin(dlon/2) 
       ; 
      var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); 
      var d = R * c; // distance in km 
      return d; 

     } 

     private static double DegreesToRaduis(double deg) 
     { 
      return deg * System.Math.PI/180; 
     } 

     public byte[] ToBinaryString() 
     { 
      var result = new byte[6]; 
      return result; 
     } 
    } 
} 
+0

您的公共屬性是小寫的「l」經度,傳入您的構造函數的參數具有相同的名稱。改變你的財產是經度 –

+0

我剛剛嘗試過,它仍然給我同樣的錯誤。 –

回答

1

我想你想要這樣的:

public City(string name, double latitude, double longitude) 
    { 
     Name = name; 
     Latitude = latitude; 
     Longitude = longitude; 

    } 

    public string Name { set; get; } 
    public double Latitude { get; set; } 
    public double Longitude { get; set; } 

編輯

的控制檯應用程序完整的源代碼,沒有任何錯誤(DegreesToRadians拼寫錯誤在你的榜樣幾次太)。

using System; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     TravelingSalesman ts = new TravelingSalesman(); 
     ts.City("Greenwich", 0.0, 0.0); 
    } 
} 

public class TravelingSalesman 
{ 
    public void City(string name, double latitude, double longitude) 
    { 
     Name = name; 
     Latitude = latitude; 
     Longitude = longitude; 
    } 

    public string Name { set; get; } 
    public double Latitude { get; set; } 
    public double Longitude { get; set; } 

    public double GetDistanceFromPosition(double latitude, double longitude) 
    { 
     var R = 6371; //raduis of the earth in km 
     var dLat = DegreesToRadians(latitude - Latitude); 
     var dlon = DegreesToRadians(longitude - Longitude); 
     var a = 
      Math.Sin(dLat/2) * Math.Sin(dLat/2) + 
      Math.Cos(DegreesToRadians(Latitude)) * 
      Math.Cos(DegreesToRadians(Latitude)) * 
      Math.Sin(dlon/2) * Math.Sin(dlon/2) 
      ; 
     var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a)); 
     var d = R * c; // distance in km 
     return d; 

    } 

    private static double DegreesToRadians(double deg) 
    { 
     return deg * System.Math.PI/180; 
    } 

    public byte[] ToBinaryString() 
    { 
     var result = new byte[6]; 
     return result; 
    } 
} 
+0

似乎還沒有工作伴侶。感謝您的支持:) –

相關問題