2010-07-14 14 views
7

Chúng ta có bất kỳ toán tử nào trong C# mà tôi có thể tránh đánh giá ngắn mạch và đi qua tất cả các điều kiện.Làm thế nào để tránh đánh giá ngắn mạch trong C# khi thực hiện chức năng tương tự

nói

if(txtName.Text.xyz() || txtLastName.Text.xyz()) 
{ 

} 

public static bool xyz(this TextBox txt) 
{ 
//do some work. 
return false; 
} 

Cần đánh giá tất cả các điều kiện không phụ thuộc vào sản lượng thu được. Và sau khi đánh giá tình trạng cuối cùng tiếp tục theo kết quả thu được. ?

+0

Tại sao bạn muốn đánh giá cùng điều kiện hai lần? –

+0

@Adrian: Lấy nó làm ví dụ mẫu. chức năng xyz có thể chứa bất kỳ loại defination, có thể là một đại biểu hoặc cái gì khác. –

Trả lời

13

Chỉ cần sử dụng một thanh đơn, điều này sẽ đánh giá cả hai đối số bất kể kết quả của kết quả đầu tiên.

if(txtName.Text.xyz() | txtLastName.Text.xyz()) { } 

Bạn cũng có thể làm tương tự với AND, ví dụ: Bạn có thể thay && với một dấu và duy nhất để nhận được cùng một ảnh hưởng như trên:

if(txtName.Text.xyz() & txtLastName.Text.xyz()) { } // Both sides will be called 
+0

Vâng, đã sớm! – GenericTypeTea

+0

Tính năng này có hoạt động với Javascript không? –

+0

Có hoạt động giống nhau. – GenericTypeTea

4

Chỉ cần sử dụng một thanh duy nhất;

if(txtName.Text.xyz() | txtLName.Text.xyz()) 
{ 

}