Điều này có thể hơi tầm thường, nhưng trong C# bạn thích int hoặc UInt16 khi lưu trữ một cổng mạng trong một biến? Các lớp khung sử dụng int khi giao dịch với một cổng mạng mặc dù UInt16 thực sự đại diện cho các giá trị hợp lệ.Tôi có nên sử dụng int hoặc UInt16 không?
Trả lời
ký (int
/short
vv, đúng hơn là uint
/ushort
) có lợi thế là CLS phù hợp, do đó được khuyến khích trừ khi bạn có lý do chính đáng.
Re int
vs short
- trong nhiều trường hợp nó là hiệu quả hơn để tính toán với int
(hoặc uint
), vì tất cả các nhà khai thác được tối ưu hóa cho việc này. Nếu bạn chỉ lưu trữ và truy xuất nó thì tất nhiên đây không phải là vấn đề.
nếu bạn có bộ xử lý 32 bit và bạn sẽ sử dụng giá trị 16 bit (đối với nền kinh tế bộ nhớ), nó sẽ được căn chỉnh đến 32 bit. Vì vậy, tôi nghĩ rằng nó không phải là rất quan trọng sử dụng ubit 16bit thay vì giá trị 32 bit.
Ngoại trừ trong một mảng, tất nhiên. –
vâng đúng vậy – tga
- 1. Tôi có nên sử dụng byte hoặc int không?
- 2. Tôi có nên sử dụng bí danh hoặc alias_method không?
- 3. Tôi có nên sử dụng em hoặc px không?
- 4. Numpy: Tôi có nên sử dụng newaxis hoặc Không?
- 5. Tôi có nên sử dụng đôi hoặc nổi không?
- 6. tôi có nên sử dụng urandom hoặc openssl_random_pseudo_bytes không?
- 7. Tôi có nên sử dụng AppDomain.CurrentDomain.BaseDirectory hoặc System.Environment.CurrentDirectory không?
- 8. Tôi có nên sử dụng Phobos hoặc Tango không?
- 9. Tôi có nên sử dụng eval() hoặc call_user_func() không?
- 10. Tại sao mảng UInt16 có vẻ nhanh hơn mảng int?
- 11. Tôi muốn sử dụng NumPy/SciPy. Tôi có nên sử dụng Python 2 hoặc 3 không?
- 12. Tôi có nên kiểm tra tăng :: shared_ptr hoặc std :: shared_ptr trước khi tôi sử dụng không?
- 13. Tôi nên sử dụng IEnumerable hoặc IList?
- 14. Sử dụng uint hoặc int
- 15. Tôi có nên sử dụng jQuery.each() không?
- 16. Tôi có nên sử dụng ProGuard không?
- 17. Tôi có nên sử dụng HttpRuntime.Cache không?
- 18. Tôi có nên sử dụng @EJB hoặc @Inject
- 19. Tôi có nên sử dụng DataInputStream hoặc BufferedInputStream
- 20. Tôi có nên sử dụng ipairs hoặc vòng lặp cho
- 21. Tôi có nên sử dụng `import os.path` hoặc` import os`?
- 22. Tôi có nên sử dụng nav hoặc ul
- 23. Tôi có nên sử dụng QCoreApplication :: processEvents() hoặc QApplication :: processEvents()?
- 24. Tôi có nhiệm vụ Rails: tôi có nên sử dụng tập lệnh/runner hoặc cào không?
- 25. Tôi có nên sử dụng một LINQ DataContext hoặc nhiều?
- 26. Khi nào tôi nên sử dụng Bảng chỉ mục của Oracle? Hoặc, khi tôi không nên?
- 27. Tôi có nên luôn sử dụng dịch vụ hoặc tôi có thể sử dụng kho trực tiếp không?
- 28. Tôi có nên sử dụng constexpr như thế này không?
- 29. Tôi có nên thoát khỏi giá trị số nguyên mong muốn bằng cách sử dụng mysql_real_escape_string hoặc tôi có thể sử dụng (int) $ expectedinteger
- 30. Tôi có nên sử dụng getHours() hoặc getUTCHours cho Javascript của tôi không?
Tôi tin rằng các loại chưa ký được tuân thủ CLS bắt đầu bằng 2.0. Đã một thời gian dài kể từ khi tôi nhìn vào điều này mặc dù vì vậy tôi có thể sai. – JaredPar
@JaredPar - kỳ quặc, 'ushort' không tăng cảnh báo, nhưng' uint' hiện (sử dụng VS2008): "Cảnh báo Loại đối số 'uint' không tuân thủ CLS" –
@JaredPar - cũng, MSDN " API này không tuân thủ CLS. Phương án thay thế CLS là Int32. " http://msdn.microsoft.com/en-us/library/system.uint16.aspx (cũng nói rằng đối với 4.0) –