ด้วยความอยากรู้อยากเห็น: เหตุใดฉันจึงสามารถกำหนด 0.0 ให้กับตัวแปรที่เป็นประเภทการแจงนับ แต่ไม่ใช่ 1.0 ดูรหัสต่อไปนี้:
public enum Foo
{
Bar,
Baz
}
class Program
{
static void Main()
{
Foo value1 = 0.0;
Foo value2 = 1.0; // This line does not compile
Foo value3 = 4.2; // This line does not compile
}
}
ฉันคิดว่าการแปลงระหว่างประเภทตัวเลขและค่าการนับจะได้รับอนุญาตผ่านการร่ายเท่านั้น? นั่นคือฉันสามารถเขียน Foo value2 = (Foo) 1.0;เพื่อให้บรรทัด 2 ในMainคอมไพล์ได้ เหตุใดจึงมีข้อยกเว้นสำหรับค่า0.0ใน C #
1.0ตัวอักษรให้กับ enum ที่กำหนดเองได้