Convertir float valeur de chaîne

J'ai une propriété comme cela:

 public float Lat{
        get {
            float lat;
            if (!float.TryParse(hdnLat.Value, out lat))  
            {
                throw new NotImplementedException();
            }

            return lat;
        }
        set { 
            hdnLat.Value = value;  //Line 43
        }
    }

J'ai eu de la Latitude et de la Longitude à partir de Google Maps, et j'ai l'cordinates de deux asp.net hiddenfields.

<asp:HiddenField ID="hdnLat" runat="server" />
<asp:HiddenField ID="hdnLng" runat="server" />

- Je stocker mes latitude et la longitude comme flotter dans mon databas donc je dois le convertir en float right?

Comment puis-je convertir mon cordinates au bon format?

Visual Studio givs moi cette erreur:

Ne peut pas convertir implicitement le type double pour
string de la Ligne de 43

Comment puis-je résoudre ce problème?

  • la ligne est de 43?
  • Ne pas jeter NotImplementedException, sauf si vous envisagez sur la mise en œuvre plus tard.
  • ne jetez pas un NotImplementedException - c'est quand vous n'écrivez pas une méthode dans une interface. Utilisation ArgumentException - qu'est ce que c'est pour.
  • Non, ce n'est pas pour que. Tout d'abord, ne pas le faire. Si vous ne voulez pas mettre en œuvre une méthode d'une interface, vous probablement ne devrait pas être mise en œuvre de l'interface. Et si vous avez vraiment besoin de le faire, jeter NotSupportedException. Le Code est complet, il devrait ne jamais jeter NotImplementedException. Et il n'y a pas d'exceptions à cette règle.
  • oui, je sais, je voulais dire "c'est ce qui est mis là-bas pour vous jusqu'à ce que vous mettre en œuvre". De toute façon, le point est-il suce pour "hey votre chaîne ne peut pas être analysée pour un certain nombre" et ArgumentException est le meilleur choix
  • les accesseurs ont pas d'arguments donc ArgumentException n'a pas de sens. Vous ne devriez pas jeter quoi que ce soit à partir d'une lecture. Mais si il n'y a pas d'autre choix (mais il y a probablement), ce code devrait probablement jeter FormatException (qui est ce que le flotteur.Analyser les jeter).
  • flotteur.Parse() renvoie une System.FormatException lors de l'analyse échoue. Je suppose que ce serait tout aussi approprié ici.
  • Ouais, FormatException est le bon choix (même si, en général, Martinho est correct: les accesseurs ne devraient pas jeter des exceptions). Mais il ne fait pas beaucoup de sens d'appeler TryParse et ensuite les jeter si elle échoue. Qu'est ce que le Parse méthode déjà fait pour vous.
  • Quel est le type de hdnLat ici ?

InformationsquelleAutor tord | 2011-05-16