Конфликт переменных с enum
Всем доброго времени суток!
Возник вопрос, почему при использовании одинаковых названий, содержащихся в разных enum'ах ошибки нет, а при использовании переменной, название которой есть хотя бы в одном из них, вызывает предупреждение?
enum MyEnum
{
foo,
bar
}
enum AnotherEnum
{
foo,
bar
}
stock test()
{
new foo;
}
stock test2(foo)
{
}
Возникает warning 219: local variable "foo" shadows a variable at a preceding level
Обнаружил данную особенность для себя только сейчас, вероятно потому, что ранее во всех enum'ах использовал какие-то префиксы, а тут решил без них.
Нет ли каких-то возможных вариантов решения? Порядком поднадоели повсеместные префиксы, и хочется использовать простые названия внутри enum'ов вроде ID, name и т.п., но в таком случае я теряю их во всех остальных местах.
При этом в аргументах функции также нельзя использовать данное имя, однако, например, тот же name с native'ом GetPlayerName не конфликтует (вероятно, по той же причине, что и forward сам по себе не конфликтует, если не писать сам public)