Các điều khoản có phần thay thế cho nhau, mặc dù trong một số tình huống tôi sẽ thích cái này hơn cái khác. Thông thường bạn có thể có được cách sử dụng tốt nhất nếu bạn nghĩ về Làm thế nào bạn sẽ mô tả chiều dài / kích thước / số lượng của yếu tố này bằng lời nói với người khác?
length()
ngụ ý rằng phần tử có chiều dài. Một chuỗi có độ dài. Bạn nói "một chuỗi dài 20 ký tự", phải không? Vì vậy, nó có một chiều dài.
size()
ngụ ý rằng phần tử có kích thước. Ví dụ: một tập tin có kích thước. Bạn nói "tập tin này có kích thước 2 MB", phải không? Vì vậy, nó có một kích thước.
Điều đó nói rằng, một chuỗi cũng có thể có kích thước, nhưng tôi mong đợi một cái gì đó khác ở đây. Ví dụ: chuỗi UTF-16 có thể có độ dài 100 ký tự, nhưng vì mỗi ký tự được tạo thành từ hai byte, tôi mong muốn kích thước là 200.
count()
là rất bất thường. Objective-C sử dụng số lượng cho số phần tử trong một mảng. Người ta có thể tranh luận nếu một mảng có độ dài (như trong Java), có kích thước (như trong hầu hết các ngôn ngữ khác) hoặc có số đếm. Tuy nhiên, kích thước có thể lại là kích thước tính theo byte (nếu các mục mảng là int 32 bit, mỗi mục là 4 byte) và chiều dài ... Tôi sẽ không nói "một mảng dài 20 phần tử", nghe có vẻ khá kỳ lạ với tôi. Tôi muốn nói "một mảng có 20 phần tử". Tôi không chắc liệu số đếm có thể hiện điều đó rất tốt hay không, nhưng tôi nghĩ rằng số đếm ở đây là một dạng ngắn elementCount()
và điều đó lại có ý nghĩa hơn đối với một mảng so với chiều dài () hoặc kích thước ().
Nếu bạn tạo các đối tượng / thành phần riêng trong ngôn ngữ lập trình, tốt nhất nên sử dụng bất kỳ yếu tố tương tự nào khác sử dụng, vì các lập trình viên được sử dụng để truy cập thuộc tính mong muốn bằng thuật ngữ đó.
List.Capacity
tài sản trong C #.