Temeldeki tür aslında aynıdır, ancak derleyici tam olarak aynı ada sahip olacak şekilde bağlıdır. Bu, ayrışmaya dayanan bir derleme hatasıdır. C# dilbilgisi şartnamesine ve takma ad olarak takma adı verilen temel türlere (ör. 'Int', 'birim' ... vb.) Baktım. Ayrıştırıcı belirli dizeleri integral-tür dilbilgisi kuralından bekler.
hata hem enum Enum : int
enum Enum : Int32
aynı çalıştırarak yine bir ayrıştırma hatası olup.
Ben adımı ayrıştırma bu sınırı zorlamak nedenini bilmiyorum ama ben tahmin deneyebilirsiniz: Int32 diğer şey gerçek int yapı atıfta bulunuyor olabilir bir anahtar kelime olmadığından. Ayrıştırıcı, her bir taban türü için farklı AST oluşturmak için türü bilmesi gerekiyorsa, bu, anahtar sözcük olmayan belirteciye bağlı olamaz. o bağlam birçok bilgi gerektirdiğinden
C# şartname açık takma olarak System.Int32int anahtar kelime tanımlar olsa da, adım ayrıştırma sırasında açık tip (Int32) hakkında bu bilgileri almak için hala bir sorun var Bu aşamada çıkarılamaz.
Derleme zamanında hata nedir? – Donnie
@Donnie: Türü bayt, sbyte, kısa, ushort, int, uint, uzun veya beklenen ulong. Görünüşe göre, Net'deki bir kısıtlama, kullanıcıyı bir numarada yalnızca sınıf adları yerine anahtar sözcükleri kullanmaya zorlar. – Webleeuw
İlginç. Bir şey öğrendim, yay! – Donnie