2012-07-26 15 views

Odpowiedz

14

Należy zdefiniować poza instrukcją if.

double insuranceCost; 
if (this.comboBox5.Text == "Third Party Fire and Theft") 
     { 
      insuranceCost = 1; 
     } 

Jeśli odsyłając go z metody następnie można przypisać mu wartość domyślną lub 0, w przeciwnym wypadku może pojawić się błąd „należy użyć zmiennej nieprzypisane”;

double insuranceCost = 0; 

lub

double insuranceCost = default(double); // which is 0.0 
+0

Domyślam się, że '0' jest dużo jaśniejsze niż' default (double) '. Ten ostatni jest zwykle używany z typami rodzajowymi, w których nie można znać wartości domyślnej w czasie pisania kodu. – Joey

+0

@ Joey, zgadzam się, użyłem domyślnie dać pojęcie – Habib

3
double insuranceCost = 0; 
    if (this.comboBox5.Text == "Third Party Fire and Theft") 
    { 
     insuranceCost = 1; 

    } 

uznaniu jej przed if, co daje wartość domyślną. Ustaw wartość wewnątrz if. jeśli nie podasz domyślnej wartości podwójnej, otrzymasz błąd podczas kompilacji. Na przykład

double GetInsuranceCost() 
{ 
     double insuranceCost = 0; 
     if (this.comboBox5.Text == "Third Party Fire and Theft") 
     { 
      insuranceCost = 1; 

     } 
     // Without the initialization before the IF this code will not compile 
     return insuranceCost; 
} 
+0

dlaczego = 0? ... –

+0

Ponieważ musisz zainicjować zmienną o pewną wartość, aby uniknąć ostrzeżenia. – Nickon

+0

Aby przypisać wartość domyślną na wypadek, gdyby nie została podjęta – Steve

4

W uzupełnieniu do innych odpowiedzi, można po prostu Inline z if w tym przypadku (nawias dodawać tylko dla jasności):

double insuranceCost = (this.comboBox5.Text == "Third Party Fire and Theft") ? 1 : 0; 

Wymień 0 z niezależnie od wartości chcesz zainicjować insuranceCost do, jeśli warunek nie jest zgodny.

Powiązane problemy