2017-08-28 6 views
1

Je reçois une erreur lorsque la valeur de la zone de texte est null, alors j'essayais d'écrire une instruction ternary pour vérifier si la valeur est null. Voilà ce que je cam avec:Instruction ternaire avec DrawTextValuePair

DrawTextValuePair(e, string.IsNullOrEmpty(m_pcl.pn.Text) ? String.Format("Input: ", m_pcl.pn.Text) : String.Format("Input: "), true, m_leftMargin); 

Mais dans l'utilisation de ce que je reçois une erreur de compilation de:

Il n'y a aucun argument donné qui correspond au paramètre formel requis « iLeftMargin » de « ProfileDocument .DrawTextValuePair (PrintPageEventArgs, string, string, bool, int) »

Quelle serait la bonne façon d'utiliser une déclaration ternaire dans ce cas?

Répondre

2

La méthode

ProfileDocument.DrawTextValuePair(PrintPageEventArgs, string, string, bool, int) 

attend 5 arguments, mais vous l'avez fourni avec seulement 4:

DrawTextValuePair(
    e, // 1st 
    string.IsNullOrEmpty(m_pcl.pn.Text) ? String.Format("Input: ", m_pcl.pn.Text) : String.Format("Input: "), // 2nd 
    true, // 3rd 
    m_leftMargin // 4th 
); 
+0

hah, donc rien ne va pas avec ma déclaration ternaire, juste fournir le nombre d'arguments incorrect! –

+0

@YohanGreenburg Exactement! C'est pourquoi le message d'erreur indique cela. : p – Dmitry

+0

@Dmitry Aucune infraction mais le code peut être simplifié. Le format de la deuxième chaîne est redondant. Ne devrions-nous pas nous en tenir aux bonnes pratiques et lorsque nous utilisons une chaîne d'alias une fois que de la garder partout? Je sais que les cordes sont juste monstrueuses, mais quand même ...? – krzysztofla