C # 'da, bir Enum türünü bir öznitelikle dekore etmek veya değerleri değiştirmeden varsayılan değerin ne olacağını belirtmek için başka bir şey yapmak mümkün mü? Gerekli sayılar her ne sebeple olursa olsun taş haline getirilebilir ve varsayılan değer üzerinde hala kontrol sahibi olmak kullanışlı olacaktır.
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
Orientation o; // Is 'North' by default.
int
s soyut içinde bir sayısal türleri olarak uygulanacak gerçekleşmesi çünkü. Sekmeleri dize olarak uygulayabiliriz ve yararlılıklarını değiştirmez. Burada cevabı C # dilinin ifade edilebilirliğinin bir sınırlaması olarak görüyorum; sınırlama kesinlikle "değerleri kısıtlı bir kümeden ayırma" fikrinin doğasında yoktur.
enum
s'yi tip seviyesi yapılar olarak düşünmek için çok fazla zaman harcadığımı , özellikle de toplam türleri olarak (veya buraya bakın . Yani, her bir numaralandırmayı, bu türdeki tüm değerlerin diğer numaraların değerlerinden farklı olduğu ayrı bir tür olarak düşünün. Böyle bir zihniyetten, numaralandırmaların herhangi bir değeri paylaşması imkansızdır ve gerçekten de bu soyutlama 0
, belirli bir numaralandırma için varsayılanın geçerli olabileceğini veya olmayabileceğini düşündüğünüzde ve her numarada ayakkabı boynuzlu olduğunu düştüğünüzde ayrılır .