Giống như mọi người đã lưu ý, nó ít nhiều đến từ ngôn ngữ C, nơi bạn có thể nhận được mã sai nếu bạn vô tình quên dấu bằng thứ hai. Nhưng có một lý do khác cũng phù hợp với C #: Khả năng đọc.
Chỉ cần lấy ví dụ đơn giản sau:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Nếu bạn chỉ cần hoán đổi tất cả các từ rỗng sang đầu, bạn có thể dễ dàng hơn nhiều trong việc kiểm tra tất cả:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Vì vậy, ví dụ này có thể là một ví dụ tồi (tham khảo hướng dẫn mã hóa) nhưng hãy nghĩ về việc bạn cuộn nhanh qua một tệp mã hoàn chỉnh. Chỉ bằng cách nhìn thấy mẫu
if(null ...
bạn ngay lập tức biết điều gì sẽ xảy ra tiếp theo.
Nếu ngược lại, bạn luôn phải quét đến cuối dòng để xem kiểm tra tính vô hiệu, chỉ để bạn vấp một giây để tìm ra loại kiểm tra được thực hiện ở đó. Vì vậy, có thể tô sáng cú pháp có thể giúp ích cho bạn, nhưng bạn luôn chậm hơn khi những từ khóa đó ở cuối dòng thay vì ở phía trước.