1 votes

Comment utiliser le mot clé ? pour une chaîne de caractères

J'ai une condition simple et je veux l'implémenter avec ?: mais le compilateur ne me laisse pas faire. Voici l'exemple exact.

// in asp page decleration
<ajaxtoolkit:FilteredTextBoxExtender id="ftbeNumeric" runat="server" TargetControlID="textbox1" FilterType="Numbers" />
<asp:TextBox ID="textbox1" runat="server" />

// in code behind 
decimal x = textbox1.Text != string.IsNullOrEmpty ? Convert.ToDecimal(textbox1.Text) : 0;

J'essaie aussi ceci

// in code behind 
decimal x = Convert.ToDecimal(textbox1.Text) != 0 ? Convert.ToDecimal(textbox1.Text) : 0;

bith of these sample face with error.

comment définir cela avec ?: mot-clé ? et notez que textbox .text` peut être nul.

6voto

Anthony Pegram Points 58528

Envisagez de le remplacer par quelque chose comme

decimal x;
if (!decimal.TryParse(textbox1.Text, out x))
{
    // throw an exception?
    // set it to some default value?
}

Bien sûr, si vous souhaitez lever une exception en cas d'entrée invalide ou manquante, vous pouvez simplement utiliser la méthode .Parse et elle en lèvera une pour vous. Mais l'utilisation de la méthode .TryParse vous permettra de personnaliser le message d'exception ou de le traiter d'une autre manière, par exemple en demandant à nouveau à l'utilisateur de se prononcer.

3voto

Oak Points 10667

String.IsNullOrEmpty est une méthode, pas un champ. L'utilisation correcte est donc String.IsNullOrEmpty(textbox1.Text) .

0voto

Nasser Hadjloo Points 4781

Je l'ai corrigé avec cette déclaration

string.IsNullOrEmpty(textbox1.Text) ? 0 : Convert.ToDecimal(textbox1.Text);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X