Загадка. Что напечатает следующий отрывок кода на языке си#?
var args = new DrawItemEventArgs( g, font, rect, 0, DrawItemState.Selected, Color.Black, Color.Goldenrod); Console.WriteLine("{0}, {1}", args.ForeColor, args.BackColor);
Если кто-то думает, что там будет Black
или Goldenrod
, он ошибается.
Color [HighlightText], Color [Highlight]
А вся фишка в том, что свойство BackColor
в DrawItemEventArgs
реализовано так:
public Color get_BackColor() { if ((this.state & DrawItemState.Selected) == DrawItemState.Selected) { return SystemColors.Highlight; } return this.backColor; }
Редакция от 15 октября 2009
Тэги: c#, wtf, работа
Комментариев нет
← | Замена автомата перекоса на Blade mCX | Когда предопределённые тэги нужны | → |