Chúng tôi có một chút chiến đấu đang xảy ra trong nhóm phát triển của chúng tôi về điều này. Tôi rất thích nghe những gì người khác nghĩ về điều này.Bất cứ ai có thể cho tôi một lý do thực sự tốt để sử dụng tên loại CLR thay vì C# loại tên (bí danh) trong mã (như là một thực tế chung)?
Trả lời
Trong mã thực tế? Không, trừ phi bạn sẽ có rất nhiều người làm việc trên mã quen thuộc với .NET nhưng không phải với C#.
Trong tên thành viên? Chắc chắn rồi. Ví dụ: giả sử Convert.ToSingle
được gọi là Convert.ToFloat
- điều đó sẽ hoàn toàn gây nhầm lẫn cho các nhà phát triển F #, với "float
" có nghĩa là "điểm nổi 64 bit".
Quy tắc chung của tôi là C# bí danh để triển khai, loại CLR cho tên thành viên.
Nếu bạn muốn tìm một số đối số có lợi cho việc sử dụng tên loại CLR ở khắp mọi nơi, Jeff Richter đề xuất rằng trong "CLR via C#". (Nếu bạn chưa có nó, hãy mua một bản sao bất kể vấn đề này - đó là một cuốn sách tuyệt vời.) Tôi không đồng ý với những lý lẽ mà anh ấy đưa ra, nhưng dù sao cũng có một số lý do.
Cảm ơn bạn Jon ... ví dụ của bạn có ý nghĩa hoàn hảo ... – SQN
Sẽ không có hiệu suất rất nhỏ trong thời gian biên dịch khi trình biên dịch chuyển đổi các bí danh để nhập tên? (Về lý thuyết, ý tôi là, không phải đây là vấn đề thực sự ...) – antirysm
Vâng, tôi nghĩ rằng sự biện minh của Jeff trong cuốn sách của anh ta là một chút cực đoan (pg 119 nếu có ai quan tâm). Tuy nhiên tôi đồng ý với anh ta rằng họ nên không bao giờ bao gồm các bí danh ở nơi đầu tiên và float val = br.ReadSingle(); là một chút kỳ quặc. Mặc dù tôi nghĩ đơn val = br.ReadSingle() cũng là lẻ, bởi vì mọi người đã sử dụng bí danh như là một tiêu chuẩn de facto-Tôi không biết bất cứ ai sử dụng Int32 trên int. – RichardOD
Không. Tôi không thể. Dường như với tôi rằng các bí danh sẽ được sử dụng :)
Tôi thường sử dụng bí danh C# khi khai báo biến, nhưng kiểu CLR cho các thành viên tĩnh. Tôi đoán tôi giống như sự phân biệt hình ảnh mà nó cung cấp.
nhóm phát triển trước đây của tôi thông qua thực hành này vì sự pha trộn của C# và các nhà phát triển Basic.NET Visual. Nó đã được quyết định rằng các loại CLR sẽ làm cho nó dễ dàng hơn cho người C# và VB.NET để giao tiếp.
Tôi nghĩ rằng gần như thời gian duy nhất, việc sử dụng tên kiểu CLR là trong một cửa hàng ngôn ngữ hỗn hợp. Một khả năng khác là nếu bạn định chuyển từ ngôn ngữ hiện tại sang ngôn ngữ khác trong tương lai gần. Trong trường hợp đó tôi sẽ đi với tên kiểu CLR.
Ngoài ra, thực sự không phải là một lý do thúc đẩy mạnh mẽ để chọn một phương pháp khác. Điều quan trọng hơn là bạn phải đi đến một sự đồng thuận bằng cách này hay cách khác và đảm bảo mọi người tuân theo "tiêu chuẩn".
Tôi nghĩ có ý nghĩa khi sử dụng tên kiểu CLR một cách nhất quán khi gọi các phương thức thành viên kiểu tĩnh, vì bạn vẫn phải làm điều đó trên enums. Vì vậy, để khai báo, hãy sử dụng tên kiểu C#, nhưng khi gọi các thành viên tĩnh, hãy sử dụng các kiểu CLR. Điều này giúp dễ đọc và phù hợp hơn. Kể từ đó, bạn không thể viết:
MyEnum value = enum.Parse(typeof(MyEnum), "value");
mà sẽ phù hợp tốt hơn với:
int i = int.Parse("1");
long l = long.parse("1");
Bạn thà viết:
int i = Int32.Parse("1");
long l = Int64.Parse("1");
MyEnum value = Enum.Parse(typeof(MyEnum), "value");
(Mặc dù nó không phải là một lý do particularily mạnh) Tôi thích loại tên hơn bí danh vì màu tiêu chuẩn IntelliSense.
- 1. Có đúng không khi sử dụng thừa kế thay vì đặt bí danh tên trong C#?
- 2. Bất kỳ ai sử dụng loại nguyên thủy ngắn và byte, trong ứng dụng thực tế?
- 3. Ai đó đang sử dụng tên cấu trúc làm tên biến. Mã thực sự nói gì?
- 4. Tìm tên cột thực của một bí danh được sử dụng trong chế độ xem?
- 5. Bất cứ ai có thể cho tôi một ví dụ cho lớp CURLFile của PHP?
- 6. Sử dụng 'sử dụng bí danh = lớp' với các loại chung chung?
- 7. Namespace scoped bí danh với nhiều loại generic trong C#
- 8. Bất cứ ai có một bộ nhớ chia sẻ bộ nhớ tốt cho C + +?
- 9. Một loại đại biểu chung để xử lý bất kỳ sự kiện nào
- 10. Nhận loại thực tế của thông số đối tượng chung
- 11. Có ai thực sự đang sử dụng không gian tên css không?
- 12. Bất cứ ai có thể giới thiệu một thư viện đọc PDF tốt cho. Net?
- 13. Bất cứ ai sử dụng CouchDB?
- 14. Bất cứ ai sử dụng WPF cho các ứng dụng LOB thực sự?
- 15. Resharper và không gian tên bí danh vòng loại
- 16. Làm thế nào để gán một bí danh cho một tên hàm trong C++?
- 17. Bất cứ ai sử dụng SvnMapper?
- 18. bất cứ ai có thể giải thích sự khác biệt
- 19. Bất cứ ai có thể giải thích không gian tên trong javascript với một ví dụ?
- 20. Bất cứ ai có thể cho tôi biết mã hóa này là gì?
- 21. Có bất kỳ lý do thông thường nào để sử dụng open() thay vì fopen() không?
- 22. Thực tiễn tiêu chuẩn có sử dụng bí danh loại để chỉ ra ngữ nghĩa tham số không?
- 23. Jackson thực sự không thể loại bỏ json thành một loại chung?
- 24. Thực tiễn tốt nhất cho các quy ước đặt tên cho loại ca cao
- 25. bất cứ ai có thể giải thích tại sao loại size_t được sử dụng với một ví dụ?
- 26. Sử dụng một loại bí danh trong một tuyên bố LINQ đang tạo ra một lỗi
- 27. bất cứ ai có thể giải thích này sử dụng C++ tham khảo
- 28. CakePHP 2.0 Xác thực sử dụng email thay vì tên
- 29. Việc sử dụng thực tế cho sự lười biếng như một tính năng ngôn ngữ được tích hợp là gì?
- 30. Các chức năng ẩn danh có phải là một thực tế không tốt trong JavaScript không?
Vậy các đối số được đưa ra trong trận chiến của nhóm phát triển của bạn là gì? – xyz
Đối số lớn nhất cho các loại CLR (trong nhóm của chúng tôi) là mọi người đều có thể hiểu được loại nào đang được sử dụng, bất kể lựa chọn ngôn ngữ. Tuy nhiên, nhóm của chúng tôi sẽ không bao giờ sử dụng bất cứ điều gì NHƯNG C#, vì vậy lập luận của tôi là không phải lo lắng về điều đó. – SQN