c'è un modo per usare la stenografia per fare qualcosa del genere?vb.net se stenografia
If Not txtBookTitle.Text = String.Empty Then
objBook.DisplayName = txtBookTitle.Text
End If
c'è un modo per usare la stenografia per fare qualcosa del genere?vb.net se stenografia
If Not txtBookTitle.Text = String.Empty Then
objBook.DisplayName = txtBookTitle.Text
End If
objBook.DisplayName = If(Not (txtBookTitle.Text = String.Empty), txtBookTitle.Text, objBook.DisplayName)
Questo è [1 carattere più lungo dell'originale] (http://www.lettercount.com/), inclusi gli spazi. :) – Neolisk
non dare la colpa a me, incolpare VB per non implementare un operatore ternario corretto: P –
Forse mi manca qualcosa, ma l'operatore <> non lavora sulle stringhe? Perché l'uso di Not? –
ci sono due versioni del if stenografia. O Se (espressione, parte vera, falsa parte) o se (espressione, falsa parte)
objBook.DisplayName = If(String.IsNullOrEmpty(txtBookTitle.Text), txtBookTitle.Text)
seguito il codice è simile al vostro tre linee di codice:
objBook.DisplayName = IIF(String.IsNullorEmpty(txtBookTitle.Text),objBook.DisplayName, txtBookTitle.Text)
non consiglio l'uso di IIF. * Entrambi i parametri saranno valutati * e possono produrre risultati imprevisti, ad esempio * se si usano le funzioni. * Considera questo 'IIF (TRUE, JustPrintOK(), ImplodeTheUniverse())' ... siamo condannati dal momento che entrambe le funzioni saranno eseguite indipendentemente dalla condizione. Per VB> = 9 basta usare 'IF' proprio come il tuo esempio, funzionerà senza questo problema. – Sharky
Esattamente, si dovrebbe usare 'If' e' AndAlso'/'OrElse' invece – specializt
Questa è la versione più corta (81 carattere):
If txtBookTitle.Text <> String.Empty Then objBook.DisplayName = txtBookTitle.Text
e preferirei questo per il debug-abilità. Anche facilmente convertibile in C#.
Penso che sia anche più chiaro di ... If Not txtBookTitle.Text = String.Empty –
http://stackoverflow.com/questions/28377/iif-vs-if – djv