2009-10-22 29 views
8

Tôi hiểu lý do cho các tên biến hoa lạc lạc đà, nhưng tôi đã luôn tự hỏi tại sao bạn lại lạc đề một tên phương thức? tại sao nó là toString() và không ToString()? Mục đích của nó là gì?Tên phương pháp của trường hợp lạc đà

+4

Hãy cho chúng tôi biết những gì bạn hiểu là "lý do để lạc đà tên biến trường hợp", và sau đó có thể chúng tôi có thể cho bạn biết "lý do để lạc đà trường hợp tên phương thức" :) – AakashM

+1

Cả hai trường hợp thực sự là lạc đà, thấp hơn hoặc cao hơn. Nó chỉ là một quy ước để nhanh chóng phát hiện những gì là những gì trong mã của bạn, và do đó nó trông quen thuộc hơn với những người khác phải duyệt nó. – RedGlyph

+0

Tôi cho rằng đó là vì bạn có thể khai báo kiểu với chữ hoa, và khởi tạo nó với tên biến thấp hơn, để tránh va chạm tên - btw, tôi không dùng quy ước đặt tên trường hợp lạc đà này, nhưng tôi luôn tò mò hợp lý đằng sau một số của nó. – Jeremy

Trả lời

5

Đó chỉ là một quy ước. Giống như tất cả các công ước mà họ chỉ phục vụ, trong tâm trí của những người sáng tạo của họ, làm cho mã dễ đọc và duy trì hơn.

+0

Ngoài ra, .NET đã chấp nhận 'ToString()' như một quy ước, thay vì 'toString()', trái với Java. – Joey

+0

Ok, nhưng tại sao sẽ thấp hơn vỏ đầu tiên của một tên phương pháp làm cho nó dễ dàng hơn để đọc? – Jeremy

+0

Một số lập trình viên lớn lên trên vỏ lạc đà cho tất cả các biến của họ, tức là: int someInt do đó phần nào của nó là một tiến triển tự nhiên cho phương pháp của họ. Cũng giống như một số người sẽ tuyên bố rằng ký hiệu Hungary (http://en.wikipedia.org/wiki/Hungarian_notation) là cực kỳ dễ đọc trong khi những người khác không đồng ý. Nó giống như cuộc tranh luận cũ về việc liệu niềng răng xoăn đi trên cùng một dòng hay dòng tiếp theo :) – popester

2

Bởi vì để nhất quán, bạn phải viết hoa chữ cái đầu tiên của mọi tên phương thức, và sau đó bạn phải nhấn phím Shift nhiều lần trong một ngày.

+0

gee cảm ơn sự giảm giá ẩn danh, hoàn toàn nhẹ nhàng, quan sát – kurosch

1

Tôi không nghĩ có bất kỳ lý do , đây là những chỉ ước và tất cả mọi người có thể có của chính mình.

1

Nếu bạn muốn có một chức năng

write(); 

mà mất ít công sức (một ít SHIFT bấm phím) so với

Write(); 

Tuy nhiên, nếu bạn đang viết vào một tập tin, bạn cần phải phân biệt từ ngữ. Do đó

writeToFile(); 

là nhẹ hiệu quả hơn (và vẫn phù hợp với ví dụ đầu tiên)

+5

Trong IDE hiện đại với IntelliSense, không còn đúng nữa. – SLaks

+0

Trong các IDE hiện đại với IntelliSense, nó có lẽ * ít hơn * của một vấn đề. Tôi sẽ không bỏ qua nó hoàn toàn. Rất nhiều người (đúng hay sai) không sử dụng IDE (vì lý do gì) –

1

Thông thường, bạn có xu hướng làm theo một trong những khuôn khổ của bạn sử dụng. Vì vậy, các nhà phát triển Java có xu hướng sử dụng chữ thường để bắt đầu, và các nhà phát triển .NET có xu hướng sử dụng chữ hoa để bắt đầu.

3

Vì đó là những gì các nhà thiết kế gốc của Java thích.

+0

Có bởi vì lý do? Thông thường bạn sẽ làm một cái gì đó, tôi sẽ nghĩ, để phục vụ một mục đích ... – Jeremy

+0

Bởi vì họ thích cách đó. – SLaks

21

Rất nhiều quy ước nói rằng bạn viết hoa chữ cái đầu tiên của các loại (lớp, cấu trúc, enums, v.v.) và sử dụng chữ thường khác (hàm, thành viên, v.v.).

Nếu bạn tuân thủ quy ước đó, bạn có thể chỉ biết bằng cách xem MyStruct.MyType đề cập đến loại lồng nhau và MyStruct.myData đề cập đến một số loại dữ liệu và MyStruct.myFunc() đề cập đến một cuộc gọi chức năng.

1

Nếu bạn chưa đọc số wikipedia page, nó chứa mọi thứ bạn có thể muốn biết trên vỏ lạc đà, kể cả lịch sử của nó.

CamelCase (cũng đánh vần là "trường hợp lạc đà") hoặc vốn trung gian là việc thực hành viết từ ghép hoặc cụm từ trong đó các phần tử được nối mà không không gian, với thư ban đầu của mỗi yếu tố vốn trong hợp chất.

Một giả thuyết về nguồn gốc của Công ước lạc đà trường hợp cho rằng C lập trình viên và tin tặc chỉ đơn giản là tìm thấy nó thuận tiện hơn so với tiêu chuẩn phong cách gạch-based.

C lập trình viên lười biếng? Tôi nghi ngờ rằng rất nhiều.

+0

Kiểu dáng dưới nền tảng ngày trở lại EBCDIC, không hỗ trợ trường hợp hỗn hợp. Các biến có dạng THIS_VARIABLE. Chuyển đổi thành ASCII và bạn nhận được this_variable, dễ đọc hơn. Sử dụng ThisVariable thậm chí còn đơn giản hơn, và đó là những gì chúng tôi làm trong các ngôn ngữ nhạy cảm. Điều thú vị là, trong các ngôn ngữ không phân biệt chữ hoa chữ thường, chẳng hạn như SQL, nó không phải là hiếm khi tìm kiếm các thanh bên dưới. –

+0

EBCDIC hỗ trợ trường hợp hỗn hợp. Mặc dù vậy, mã BCD 6 bit (thường là?). –

13

Chúng tôi sử dụng chữ thường trên chữ cái đầu tiên để tiết kiệm một ít mực trong bản in của chúng tôi.

+0

hài hước, nhưng hợp lý. suy nghĩ toàn cầu, hành động địa phương. UPVOTED :) –

0

Một người bạn nói với tôi rằng một nghiên cứu cho thấy mọi người có thể đọc mã dễ dàng hơn nếu các loại là trường hợp lạc đà, với chữ hoa đầu tiên và các biến được thực hiện_like_this. Nó chắc chắn làm cho sự khác biệt giữa các loại và các biến nhảy ra ngoài.

Tôi chưa bao giờ biết cái nào rõ ràng hơn đối với tên hàm. Tôi thường xem xét viết hoa chữ cái đầu tiên, nhưng sau khi đọc nó, tôi nghĩ có thể dễ đọc hơn để phân biệt giữa tên và tên phương thức (vâng, trong một số ngôn ngữ, chữ ký của phương thức là kiểu, nhưng bạn biết ý tôi là gì !)

+3

Tôi luôn hoài nghi về câu trả lời bắt đầu "Một người bạn đã nói ..." mà không trích dẫn. Một liên kết đến nghiên cứu sẽ là tốt :) – Andrew

1

Trường hợp Pascal Chữ cái đầu tiên trong số nhận dạng và chữ cái đầu tiên của mỗi từ được nối tiếp tiếp theo được viết hoa. Bạn có thể sử dụng trường hợp Pascal cho số nhận dạng của ba ký tự. Ví dụ: BackColor

viết hoa Tất cả các ký tự trong định danh được viết hoa. Chỉ sử dụng quy ước này cho các số nhận dạng bao gồm hai chữ cái hoặc ít hơn hoặc các chữ viết tắt, chẳng hạn như BSU và UCS. Trong ví dụ dưới đây, IO và UI là các số nhận dạng chữ hoa, trong khi Hệ thống theo kiểu viết hoa Pascal vì chiều dài lớn hơn hai. Ví dụ: System.IO; System.Web.UI

Camel trường hợp Chữ cái đầu của một định danh là chữ thường và chữ cái đầu tiên của mỗi từ nối tiếp theo được viết hoa. Ví dụ: BackColor

sau Link tóm tắt các quy tắc vốn hóa và cung cấp ví dụ cho các loại khác nhau của định danh và các mục trong application/project.Hopefully link web của bạn này sẽ hữu ích cho bạn

https://dotnetprod.bsu.edu/AdminConsole/Documentation/ASPDotNet/CodingStyle/NamingConventions/Capitalization.aspx

2

Vì các trường hợp lạc đà viết hoa chữ cái đầu tiên của mỗi từ để thay thế các không gian, chúng ta còn lại với thách thức về cách phân biệt một tiêu đề được viết hoa, giống như tiếng Anh. Để giải quyết vấn đề này, từ đầu tiên trong số nhận dạng chữ hoa lạc được viết hoa để cho biết tiêu đề hoặc số nhận dạng được viết hoa.

Trong trường hợp lập trình, dường như thích hợp nhất, để viết hoa tên của một lớp, chứ không phải tên của phương thức của nó là. Trong thực tế nó cung cấp một sự khác biệt tốt đẹp phân biệt giữa hai.

Qua nhiều năm lập trình đã phát triển để có nhiều quy ước, trong khi nhiều chương trình rất khác nhau, có nhiều người có xu hướng đồng ý. Tuy nhiên, bạn sẽ thấy rằng câu trả lời cho "tại sao câu hỏi", chẳng hạn như câu hỏi bạn đăng, không phải lúc nào cũng bắt nguồn từ một cái gì đó hoàn toàn cụ thể.

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