2009-11-16 33 views
8

Hầu hết các hướng dẫn kiểu C# đều khuyên bạn nên chống lại kiểu/* ... */nhận xét, có lợi cho // hoặc ///. Tại sao phong cách cũ để tránh?Kiểu mã hóa C#: nhận xét

+1

nên là một cộng đồng wiki ... – Achilles

+0

@Achilles ... tại sao? – Brandon

+0

@Brandon, cos câu trả lời là vấn đề ưu tiên. – James

Trả lời

9

Tôi sẽ không nói rằng tôi có quan điểm mạnh mẽ về vấn đề này - nhưng IMO là vấn đề lớn nhất là /**/ bị lộn xộn nếu bạn lồng nhau, với tác dụng phụ không thể sao chép/dán khối xung quanh một cách an toàn (khá).

Bạn có thể quá dễ dàng kết thúc bằng mã sai đã nhận xét/bật hoặc có thể kết thúc với mã không biên dịch vì bạn đã kết thúc bằng số /* /* */ */.

Nếu bạn sao chép một khối // xung quanh, không gây hại - chỉ những dòng đó vẫn được nhận xét.

+0

Chúng hoàn toàn không làm tổ. –

+1

@Justin: chính xác ;-p –

3

/* */ là tốt cho các khối mã nhiều dòng. Ví dụ: ở đầu tệp mã, thông tin bản quyền, v.v.

// dễ dàng hơn cho một dòng.

Luôn sử dụng /// cho ít nhất tất cả thành viên công khai trong một lớp vì tài liệu XML của bạn được tạo từ lớp mà từ đó bạn có thể tạo tệp trợ giúp.

1

Tôi nghĩ rằng bạn nhận xét như bạn muốn vì hầu hết chúng ta đều đang nhận xét qua các lối tắt trong Visual Studio. Tôi sử dụng ctr+K, ctrl+C tất cả các hàng đã chọn được tạo thành và ctr+K ctrl+U để bỏ ghi chú các hàng đã chọn.

+0

Không phải là CTRL + E, C và CTRL + E, U? –

+0

có một số VS có sự kết hợp này nhưng tôi không biết làm thế nào tôi sử dụng mà một cho bất kỳ cài đặt tôi đã thực hiện bởi bản thân mình.Một cái gì đó là với Carma của tôi :). –

0

Tôi đoán là vì người ta yêu cầu cú pháp rõ ràng trên dòng EACH và một người tạo các nhận xét có thể nhận xét các phần mã lớn nếu đóng */ không được sử dụng. Nó không an toàn.

1

Ý kiến ​​của tôi là "//" chỉ là dễ dàng hơn để gõ vào hơn/**/

+0

+1 để không làm cho tôi lang thang xung quanh bàn phím để nhấn shift-8 –

+0

Tôi luôn sử dụng numpad/và * ở vị trí ngay bên cạnh eachother mà không cần sử dụng Shift. – JulianR

6

Một ví dụ mà nói đến cái tâm là nó có thể vô tình làm gián đoạn một bình luận /* phong cách. Ví dụ:

/* This is the start of a comment that documents the 
    behavior of the +-*/ operators in our program 
*/ 

Mã này không biên dịch, trong khi biến thể // sẽ thay đổi. Ngoài ra, /// thể hiện một phong cách cụ thể của tài liệu mà các công cụ bên ngoài phản hồi khác nhau.

1

Tôi nghĩ rằng /* */ cuối cùng sẽ đi theo cách của Dodo vì trong Visual Studio bạn chỉ có thể chọn một khối mã và nhấn CTRL-E, C để nhận xét nó bằng cách sử dụng kiểu //.

+0

+1 Đánh tôi với nó. :) – Dusty

+0

Ctrl + Alt +/trong Resharper hoặc/hoặc 'trong CodeRush. –

1

Tôi luôn sử dụng // cho COMMENTS thực, trong khi tôi lưu/* */cho mã tạm thời không muốn chạy cho mục đích gỡ lỗi/phát triển.

Bằng cách chỉ sử dụng //, bạn có thể chắc chắn rằng bạn có thể nhận xét một khối lớn các dòng/phương thức, v.v. mà không có nhận xét lồng và làm cho trình biên dịch của bạn khóc.

6

Có một vài lý do để thích // đến/* .. * /.

  • Như JaredPar đã đề cập, có các vấn đề gây chú thích lạ có thể nảy sinh với/* */usage.
  • Nếu bạn từng viết/viết một số mã xử lý tệp mã nguồn, bạn sẽ thực sự vui nếu phương thức // là tất cả những gì bạn phải xử lý.
  • Dễ dàng phát hiện ra một khối mã nhận xét lớn hơn bằng phương pháp "//", đặc biệt nếu không tô màu cú pháp. Trong thực tế, bạn sẽ thường thấy các dòng riêng lẻ trong một/* */block được đặt trước bằng dấu *, chỉ để an toàn.
  • Kiểu nhận xét XML có thể được sử dụng để tạo tài liệu mã yêu cầu "///" được sử dụng.
4

Một điều mà/* */có thể làm điều đó // không thể nhận xét phần bên trong của một dòng. Thỉnh thoảng tôi sẽ sử dụng để bình luận một tham số để một phương pháp mà một cái gì đó là không rõ ràng:

 point = ConvertFromLatLon(lat, lon, 0.0 /* height */) ; 

Trong trường hợp này không đổi, 0.0, được thông qua như là tham số thứ ba là đại diện cho chiều cao. Tất nhiên điều này có thể là tốt hơn:

 double height = 0.0; 
     point = ConvertFromLatLon(lat, lon, height) ; 

(tôi nhiều khả năng sử dụng/* */nội dòng tạm thời, chỉ cần thử qua một giá trị cụ thể.)

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