Известный Болтун
Зарегистрирован: 01 July 2006
Сообщения: 628
Примеры кода: 0
|
Re[2]: Проблемы с приоритетом операторов |
18 January 2007 18:59 |
|
|
|
|
Здравствуйте, Аноним, Вы писали:
А>Учится нужно лучше!!!
Постараюсь. :shuffle:
А>Не писать тупых структур и не будет возникать идиотских вопросов!!
А>Если выражение до "?" истино то выполняется то что стоит после знака вопроса, но до двоеточия.
А>Если ложно то то что после двоеточия. После двоеточия стоит операция присваивания нового значения z.
А>И затем это значение используется!
Постараюсь объяснить на более "острой" структуре.
class Stuff
{
static void Foo(bool x, bool y, bool z, bool a)
{
Foo(x = y ? z : true);
}
static void Foo(bool x) { }
}
Итак, следуем Вашей логике. "Если выражение до "?" истино". Что у нас до знака "?"? Ага, "x = y". Значит, сначала вычисляем (x = y). Если оно истинно, тогда "то что стоит после знака вопроса, но до двоеточия", то есть "z". "Если ложно то то что после двоеточия", то есть "true". То что получилось, передаем в метод "Foo". Я прав? 
P.S. Я нашел ту тему. Grammar ambiguities in C# 2.0
Данное сообщение получено с сайта RSDN
|
|