Продолжение, начало здесь
Начну с соцопроса: какие Вы знаете способы выполнить код до начала функции Main() (надеюсь, что перечислят все известные мне и парочку неизвестных :) )?
А теперь задачка:
Перед Вами небольшой код, выводящий два символа (кстати, проверьте себя: в каком порядке они выведутся?). Необходимо вывести подчеркивание "_" между этими символами.
Желаю удачи!
PS
итак, у нас два победителя: mace был первым и угадал авторское решение: http://habrahabr.ru/blogs/net/77039/#comment_2241079
а хабраюзер bobermaniac предложил способ элегантно обойти моё ограничение на переопределение Console: http://habrahabr.ru/blogs/net/77039/#comment_2241109
Кстати, вопрос о вызове кода до Main всё еще актуален! Пока предложен самый очевидный — статический конструктор класса.
PPS
Внезапно, еще одно решение предложил SHSE: http://habrahabr.ru/blogs/net/77039/#comment_2243183, причем основано оно на совсем других механизмах, но прекрасно работает! )
Начну с соцопроса: какие Вы знаете способы выполнить код до начала функции Main() (надеюсь, что перечислят все известные мне и парочку неизвестных :) )?
А теперь задачка:
Перед Вами небольшой код, выводящий два символа (кстати, проверьте себя: в каком порядке они выведутся?). Необходимо вывести подчеркивание "_" между этими символами.
Конечно, задача была бы тривиальной без ограничений. А они следующие:
- не определять другой метод Main
- не использовать идентификатор Console в качестве имени класса, свойства, поля и т.д. (спасибо irc-юзеру Gopneg)
- не изменять код всех существующих методов: App.Main, X.X, Y.Y
- не изменять определение поля X.y
- не добавлять новые поля в класс X
using System;<br><br>class Y<br>{<br> public Y()<br> {<br> Console.Write("0");<br> }<br>}<br><br>class X<br>{<br> public X()<br> {<br> Console.Write("o");<br> }<br> Y y = new Y();<br>}<br><br>class App<br>{<br> static void Main()<br> {<br> X x = new X();<br> }<br>}<br><br>* This source code was highlighted with Source Code Highlighter.
Желаю удачи!
PS
итак, у нас два победителя: mace был первым и угадал авторское решение: http://habrahabr.ru/blogs/net/77039/#comment_2241079
а хабраюзер bobermaniac предложил способ элегантно обойти моё ограничение на переопределение Console: http://habrahabr.ru/blogs/net/77039/#comment_2241109
Кстати, вопрос о вызове кода до Main всё еще актуален! Пока предложен самый очевидный — статический конструктор класса.
PPS
Внезапно, еще одно решение предложил SHSE: http://habrahabr.ru/blogs/net/77039/#comment_2243183, причем основано оно на совсем других механизмах, но прекрасно работает! )