2012-10-01 26 views
6

Một C# mã đơn giảnBiểu hiện là luôn luôn đúng trong C#

bool result; 
    if (bool.TryParse("false", out result) && result) 
    { 
     Console.WriteLine(result); 
    } 

bool result; 
    if (bool.TryParse("tRue", out result) && result) 
    { 
     Console.WriteLine(result); 
    } 

Resharper nói rằng kết quả trong Console.WriteLine(result) luôn là true. Tại sao?

+2

Lưu ý rằng nó không nói 'kết quả' luôn đúng - nó nói' result' __in Console.WriteLine (kết quả) __ luôn đúng –

+0

Bạn không cần '&& result'. Chỉ cần loại bỏ nó khỏi tình trạng của bạn. –

+0

@Robert Harvey, bạn đã sai. Tôi muốn hiển thị giao diện điều khiển chỉ khi kết quả là đúng – Alexandre

Trả lời

22

Đó là do phần && result - bạn sẽ chỉ bao giờ xâm nhập vào phần thân của câu lệnh nếu result là đúng sự thật. Làm thế nào để bạn dự đoán bất kỳ cách nào để vào trong đó với resultfalse?

+1

Được liên tục rep-giới hạn phải là một bummer thực. :) –

4

gì Reharper là nói cho bạn là, nếu bạn đang làm

Console.WriteLine(result); 

bạn cũng có thể làm

Console.WriteLine(true); 

Đó là, bất cứ nơi nào bạn sử dụng kết quả trong khi, bạn có thể cũng sử dụng đúng, như, nếu result là sai, bạn sẽ không đạt được phần thân của if.

+2

Tuyên bố vô nghĩa là vô nghĩa, nói cách khác. –

2

if(true && false) (thats những gì bạn nhận được, khi bạn giải quyết phân tích cú pháp) sẽ không bao giờ nhập cơ thể nếu. Đó là những gì bạn đang phân tích cú pháp trong ví dụ đầu tiên.

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