2011-01-14 34 views
6

Nói chung nếu có một tài sản mà được/đặt giá trị cho nhà nước, tôi sử dụng "Is", như:hướng dẫn tốt về cách đặt tên thuộc tính bool

Visibility: 
.IsVisible 

Nhưng đối với tài sản mà được/bộ hành động, những gì là tốt nhất để sử dụng? Giống như:

Casting shadows: 
.CastShadows 

Tôi có nên sử dụng:

.DoesCastShadows 

Có một lựa chọn tốt hơn?

+3

'.CastsShadows' có thể? –

Trả lời

11

Phần lớn thư viện sử dụng thứ gì đó giống như .IsShadowCastingEnabled. Ví dụ: UIElement định nghĩa IsInputMethodEnabledIsHitTestVisible.

Điều tuyệt vời về điều này là IsXXX làm cho nó rất rõ ràng rằng đây là một thuộc tính boolean.

+0

Hmmm, không nhận ra điều đó. +1 – BoltClock

+0

Cảm ơn, bây giờ tôi đã chia tay. Tôi có thể đi với câu trả lời của bạn sau đó. Btw khi bạn nói nhiều thư viện, bạn có nghĩa là BCL hoặc WPF hay bất kỳ khác trên mạng? –

+1

@Janan: Có một số khác biệt - một phần tùy thuộc vào độ tuổi của API. Ví dụ, WCF thường để lại "Là" tắt, nhưng vẫn sử dụng phần còn lại của khái niệm cơ bản ... –

5

Tôi nghĩ rằng CastsShadows sẽ hoạt động. Thông báo s sau Cast. Đó là song song với Is trong đó cả hai bắt đầu với động từ số ít (và Does âm thanh khá tacky).

+0

Cảm ơn, điều đó có ý nghĩa. –

1

Tùy chọn của tôi là sử dụng "Là" cho thuộc tính chỉ đọc; Tôi có thể sử dụng một cái gì đó như "EnableShadows" như là một tài sản. Nó có thể không rõ ràng ngay từ cái tên đó là một tài sản chứ không phải là một phương pháp, nhưng khi đọc mã nó phải rõ ràng, và khi viết mã Intellisense nên chỉ ra rằng đó là một tài sản. Hơn nữa, nếu một trong những cố gắng sử dụng EnableShadows như một phương pháp, trình biên dịch nên khiếu nại.

+0

Cảm ơn, tôi thực sự sử dụng IsXXX ngay cả khi nó đọc/ghi. –

+0

Một số thuộc tính hoạt động giống như các trường khiến cho mọi thứ xảy ra khi được viết, nhưng thường đọc được điều cuối cùng được viết. Những người khác phản ánh một số thuộc tính của đối tượng sẽ được kiểm soát bởi một cái gì đó khác hơn là viết cho tài sản. Bạn có quy ước đặt tên nào để phân biệt chúng không? – supercat

+0

Bạn có nghĩa là liệu một cái gì đó được tính toán trên bay vs trả về bởi một lĩnh vực sao lưu vs tài sản mà không có lĩnh vực sao lưu (được xác định bởi các lập trình viên)? Trong trường hợp đó, tôi vẫn không dùng tên khác. Tôi có các thuộc tính như vector3.Length được tính toán khi đang bay. –

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