2012-07-26 41 views

Trả lời

14

Xác định nó bên ngoài câu lệnh if.

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

Nếu bạn trả lại giá trị này, bạn có thể gán giá trị mặc định hoặc 0, nếu không bạn có thể gặp lỗi "Sử dụng biến chưa gán";

double insuranceCost = 0; 

hoặc

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

Tôi đoán '0' rõ ràng hơn' mặc định (đôi) '. Cái sau thường được sử dụng với các kiểu generic mà bạn không thể biết giá trị mặc định tại thời gian viết mã. – Joey

+0

@Joey, tôi đồng ý, tôi đã sử dụng mặc định để đưa ra ý tưởng – Habib

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

    } 

Khai báo nó trước khi câu lệnh if, đưa ra một giá trị mặc định. Đặt giá trị bên trong if. nếu bạn không đưa ra giá trị mặc định cho giá trị gấp đôi, bạn sẽ gặp lỗi khi biên dịch. Ví dụ

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

lý do tại sao = 0? ... –

+0

Vì u phải khởi tạo biến bằng một số giá trị để tránh cảnh báo. – Nickon

+0

Để gán giá trị mặc định trong trường hợp nếu bạn không lấy – Steve

4

Bên cạnh những câu trả lời khác, bạn chỉ có thể inline if trong trường hợp này (ngoặc thêm vào chỉ cho rõ ràng):

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

Thay 0 với bất kỳ giá trị mà bạn muốn khởi tạo insuranceCost, nếu điều kiện không khớp.

Các vấn đề liên quan