Saya sering menemukan diri saya menerapkan kelas yang mempertahankan beberapa jenis properti status sendiri sebagai enum: Saya memiliki Status enum dan SATU properti Status tipe Status. Bagaimana cara mengatasi konflik nama ini?
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(); }
}
}
Jika Status enum umum untuk jenis yang berbeda, saya akan meletakkannya di luar kelas dan masalahnya akan terpecahkan. Tetapi Status hanya berlaku untuk Mobil sehingga tidak masuk akal untuk mendeklarasikan enum di luar kelas.
Konvensi penamaan apa yang Anda gunakan dalam kasus ini?
NB: Pertanyaan ini sebagian diperdebatkan dalam komentar dari jawaban pertanyaan ini . Karena ini bukan pertanyaan utama , maka tidak banyak terlihat.
EDIT: Filip Ekberg menyarankan solusi IMO yang sangat baik untuk kasus khusus 'Status'. Namun saya akan tertarik untuk membaca tentang solusi di mana nama enum / properti berbeda, seperti dalam jawaban Michael Prewecki .
EDIT2 (Mei 2010): Solusi favorit saya adalah menjumlahkan nama jenis enum, seperti yang disarankan oleh Chris S. Menurut pedoman MS, ini harus digunakan hanya untuk enum bendera. Tapi aku semakin menyukainya. Saya sekarang menggunakannya untuk enum biasa juga.