stile di codifica per la condizione Se [duplicato]

2

Mi sono imbattuto sotto lo stile di scrittura delle istruzioni in C #, su esempi di codice msdn. Di solito quando scrivo se le istruzioni, le condizioni vorrei scrivere '(Cliente! = Null)

Voglio sapere se c'è qualche differenza / guadagno nella dichiarazione di scrittura come di seguito:

Customer customer;
if (null != customer)
{
  // some code
}

O

if ("" != customer.Name) 
{
  // some code
}
    
posta Narayan Akhade 26.02.2013 - 00:10
fonte

2 risposte

4

Questo è legale in C # ed è colloquialmente conosciuto come Yoda Condition. Molte persone nel mondo C / C ++ come questo perché si guardano al momento della compilazione contro la sostituzione di == con = per caso. Tuttavia, è caduto in favore di C # a causa del fatto che il compilatore lo contrassegnerà (il singolo = ) come un errore in quell'istanza (purché non sia un boolean eval).

    
risposta data 26.02.2013 - 00:25
fonte
3

Non sono sicuro di C #, ma in C ++ è legale assegnare un valore all'interno di un'istruzione if.

Scrivere if in questo modo ti impedisce di brutte sorprese se si dimentica un carattere: qualcosa come if ( customer.Age = 15) .

Quando si inviano rhs e lhs non è possibile assegnare customer.Age al valore 15 che è const.

Quindi, probabilmente il codice che stai leggendo è stato scritto da un ex c ++ folk.

Ma siccome MS Visual ha avvertimenti per l'assegnazione all'interno di ifs, tendo a non scriverli mai in questo modo.

    
risposta data 26.02.2013 - 00:20
fonte

Leggi altre domande sui tag