Известный Болтун
Зарегистрирован: 01 July 2006
Сообщения: 628
Примеры кода: 0
|
Проблемы с приоритетом операторов |
18 January 2007 14:24 |
|
|
|
|
Господа, приветствую!
Согласно Ecma-334 (14.2.1), в C# приоритет оператора присваивания ниже, чем приоритет условного тернарного оператора. Тем не менее обнаружилось весьма странное поведение, которое проявляется в следующем фрагменте кода:
class Stuff
{
static void Foo(bool x, bool y, bool z)
{
Foo(x ? y : z = true);
}
static void Foo(bool x) { }
}
Он воспринимается компилятором следующим образом:
class Stuff
{
static void Foo(bool x, bool y, bool z)
{
Foo(x ? y : (z = true));
}
static void Foo(bool x) { }
}
В чем дело?
P.S. Я нашел ту тему. Grammar ambiguities in C# 2.0
Данное сообщение получено с сайта RSDN
|
|