Tôi thường thấy mình đang triển khai một lớp duy trì một số loại thuộc tính trạng thái riêng như một enum: Tôi có một enum Trạng thái và MỘT thuộc tính Trạng thái của loại Trạng thái. Tôi nên giải quyết xung đột tên này như thế nào?
public class Car
{
public enum Status
{
Off,
Starting,
Moving
};
Status status = Status.Off;
public Status Status // <===== Won't compile =====
{
get { return status; }
set { status = value; DoSomething(); }
}
}
Nếu Enum Trạng thái phổ biến với các loại khác nhau, tôi sẽ đặt nó bên ngoài lớp và vấn đề sẽ được giải quyết. Nhưng Trạng thái chỉ áp dụng cho Xe hơi do đó không có ý nghĩa gì khi khai báo enum bên ngoài lớp.
Bạn sử dụng quy ước đặt tên nào trong trường hợp này?
NB: Câu hỏi này đã được tranh luận một phần trong các bình luận về câu trả lời của câu hỏi này . Vì nó không phải là câu hỏi chính , nó không được hiển thị nhiều.
CHỈNH SỬA: Filip Ekberg đề xuất một giải pháp IMO tuyệt vời cho trường hợp cụ thể của 'Trạng thái'. Tuy nhiên, tôi sẽ rất thú vị khi đọc về các giải pháp mà tên của enum / property khác nhau, như trong câu trả lời của Michael Prewecki .
EDIT2 (tháng 5 năm 2010): Giải pháp yêu thích của tôi là đa dạng hóa tên loại enum, theo đề xuất của Chris S. Theo hướng dẫn của MS, điều này chỉ nên được sử dụng cho cờ enum. Nhưng tôi ngày càng thích nó hơn. Bây giờ tôi cũng sử dụng nó cho enums thông thường.