Tôi đã dành hầu hết các năm qua làm việc chủ yếu với C # và SQL. Mọi lập trình viên mà tôi đã làm việc trong thời gian đó đều có thói quen đặt dấu ngoặc mở của hàm hoặc điều khiển luồng lệnh trên một dòng mới. Vì thế ...
public void MyFunction(string myArgument)
{
//do stuff
}
if(myBoolean == true)
{
//do something
}
else
{
//do something else
}
Tôi luôn luôn bị ấn tượng bởi sự lãng phí không gian này, đặc biệt là trong các câu lệnh if / other. Và tôi biết các lựa chọn thay thế tồn tại trong các phiên bản sau của C #, như:
if(myBoolean == true)
//do something on one line of code
Nhưng hầu như không ai sử dụng chúng. Mọi người đã làm điều xoăn-on-newline.
Sau đó tôi đã quay lại làm JavaScript sau một thời gian dài vắng bóng. Trong trí nhớ của tôi, các nhà phát triển JavaScript đã từng thực hiện chính xác cùng một thứ mới, nhưng với tất cả các thư viện và công cụ mới lạ mắt, hầu hết các nhà phát triển đều đặt dấu ngoặc mở sau khi khai báo:
function MyJavaScriptFunction() {
//do something
}
Bạn có thể thấy ý nghĩa của việc này, bởi vì việc sử dụng các bao đóng và các con trỏ hàm đã trở nên phổ biến trong JavaScript, nó tiết kiệm rất nhiều không gian và làm cho mọi thứ dễ đọc hơn. Vì vậy, tôi đã tự hỏi tại sao nó không được xem là điều được thực hiện trong C #. Trên thực tế, nếu bạn thử cấu trúc trên trong Visual Studio 2013, nó thực sự định dạng lại nó cho bạn, đặt dấu ngoặc mở trên một dòng mới!
Bây giờ, tôi vừa thấy câu hỏi này trên Đánh giá mã SE: https://codereview.stackexchange.com/questions/48035/questions-responses-let-me-tell-you-about-you Trong đó tôi đã học được điều đó ở Java, a ngôn ngữ Tôi không quá quen thuộc, nó được coi là không nghiêm ngặt để mở dấu ngoặc nhọn của bạn ngay sau khi khai báo, theo kiểu JavaScript hiện đại.
Tôi đã luôn hiểu rằng C # ban đầu được mô hình hóa sau Java và được giữ theo nhiều tiêu chuẩn mã hóa cơ bản tương tự. Nhưng trong trường hợp này, có vẻ như không. Vì vậy, tôi cho rằng phải có một lý do chính đáng: lý do là gì? Tại sao các nhà phát triển C # (và Visual Studio) thực thi mở dấu ngoặc nhọn trên một dòng mới?
if(myBoolean == true)
làm cho rất ít ý nghĩa với tôi. Trong khi chúng ta đang ở đó, trong khi không if ((myBoolean == true) == true)
?? Chỉ cần if (myBoolean)
như vậy là đủ. Xin lỗi, một tiểu thú cưng của tôi.