Я читал в основных принципов программирования конечно, что enum
значения должны быть уникальными, имеющие следующий пример:Должны ли значения Enum быть уникальными в глобальном масштабе?
enum color = { red, orange, yellow };
enum fruit = { apple, orange, kiwi}; // error: orange is redefined
int kiwi = 42; // error: kiwi is redefined
Я также нашел ту же идею, по этому вопросу:
Two enums have some elements in common, why does this produce an error?
Имена Enum находятся в глобальном масштабе, они должны быть уникальными.
Я пишу C# приложений в MonoDevelop на Ubuntu 14.10, и я попытался воспроизвести это поведение:
using System;
namespace FP
{
class MainClass
{
enum color { red, orange, yellow };
enum fruit { apple, orange, kiwi}; // error: orange is redefined
int kiwi = 42; // error: kiwi is redefined
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
}
}
}
Программа выше компилируется успешно.
Это известное поведение MonoDevelop или почему оно было скомпилировано без ошибок? Должны ли значения Enum быть уникальными в глобальной области?
Вопрос, который вы связываете, является вопросом 'c', а не вопросом' C# '. * Основы программирования * говорят о c или C#? – HugoRune
@HugoRune О, мы изучаем C#, но, конечно, курс C. Извините за путаницу. –
кстати. В C++ 11 был введен «класс enum» для устранения этого и других недостатков перечислений стиля C. – CodesInChaos