2010-09-07 36 views
5
// Example bool is true 
bool t = true; 

// Convert bool to int 
int i = t ? 1 : 0; 
Console.WriteLine(i); // 1 

Điều này chuyển đổi false thành 0 và đúng thành 1, ai đó có thể giải thích cho tôi cách t? 1: 0 hoạt động?C# Ai đó có thể giải thích logic boolean này

+1

http://en.wikipedia.org/wiki/Ternary_operation –

Trả lời

12

Nhìn vào Ternary Operator.

int i = t ? 1 : 0; 

tương đương với:

if(t) 
{ 
    i = 1; 
} 
else 
{ 
    i = 0; 
} 

Cú pháp này có thể được tìm thấy trong một loạt các ngôn ngữ, thậm chí javascript.

nghĩ về nó như một câu tiếng Anh nếu bạn thay đổi đại tràng cho "khác":

bool isItRaining = false; 
int layersOfClothing = isItRaining? 2 otherwise 1; 
4

Đó là C# Conditional Operator.

i = does t == true? if yes, then assign 1, otherwise assign 0. 

Cũng có thể được viết như sau:

if (t == true) 
    t = 1; 
else 
    t = 0; 

hoặc

if (t) 
    t = 1; 
else 
    t = 0; 

Kể từ t là đúng, nó in 1.

3
bool t= true; 
int i; 

if(t) 
{ 
i=1; 
} 
else 
{ 
i=0; 
} 

Đối với cái nhìn hơn ?: hành

3

(? *) đây là toán tử điều kiện.

Toán tử điều kiện (? :) trả về một trong hai giá trị tùy thuộc vào giá trị của biểu thức Boolean. Toán tử điều kiện có dạng

điều kiện? first_expression: second_expression;

đây trong trường hợp bạn (true 1: 0) kể từ khi tình trạng này là sự thật, đó là chắc chắn thiết lập giá trị của i để 1.

0

Tôi tin rằng trong nội bộ trình biên dịch sẽ inline tuyên bố tương đương với:

Console.WriteLine (Convert.ToInt32 (t));

Phương pháp Convert.x này kiểm tra xem thông số đã chuyển có đúng trả về 0 nếu không.

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