Как стать автором
Обновить
37
0

Пользователь

Отправить сообщение
отдать предпочтение, разумеется
признаю, вы правы
в этом месте мсдн противоречит спецификации ECMA, и в теории приоритет следует отдать стандарту (хотя для практических целей я бы основывался на теории, у Липперта в блоге есть примеры, когда реализация сознательно противоречит спецификации)

специально для вас сформулирую иначе:
в классе С есть поле:
public static A a = new A();

конструктор А выглядит таким образом:
public A() { Console.WriteLine(«from initializer of static field»); }

вывести эту строку между «before» и «after», как и раньше

статического конструктора в классе С нет (beforefieldinit есть)

класс A приватно определен в классе С (извне недоступен)
это все несет тот же смысл, что и самый первый комментарий
тип С известен заранее, а значит, может создаться где угодно
да, с синхронизацией у меня не получилось сделать пример, как раз из-за проблем с потоками
делал через ManualResetEvent, который жду в инициализаторе статического поля класса C, и сигналю между двумя Console.WriteLine

но похожое, инициализация типа проходит в том же потоке, и все просто виснет

если получится сделать внятный примем — буду благодарен
про мьютекс интересно
указанный мной статический конструктор менять нельзя по условию, но можно добавить инициализатор поля, который будет делать то, что нужно

правда, не знаю, как там будет с потоками в таком случае, не проверял

про отдельную сборку смотрите ответ
habrahabr.ru/blogs/net/113543/#comment_3649608
т.е. направление близкое, но решение у меня другое
задача, как и все такие задачи, представляет собой сферического коня в вакууме, и имеет скорее теоретическую ценность, чем практическую
почему свойства статического конструктора вложенного класса должны отличаться от невложенного? не понимаю
направление мыслей очень близкое, но я не использую Reflection.Emit или другие способы генерации динамической сборки
статический конструктор должен быть именно таким как в условии, т.е. его нельзя менять
да, этого я тоже не учел
ну тем и интересней решения получаются, о половине случаев я вообще не думал

в моем решении искомый вызов является первым
да, здесь вы меня поймали )
я не указал, что «Before static .ctor» вызывается из Main (у меня), поэтому ваше решение проходит
да, такой код скорее всего будет работыть, как и было указано
проблема в том, что С# не гарантирует вызов статического конструктора _при_ первом использовании, а только _до_ первого использования
извините, компьютер не является МТ из-за конечной ленты (внешней памяти), а не из-за конечного числа состояний
если Ваша цель — больше звонков, то в принципе Вы действуете правильно
только непонятно, на что жалуетесь тогда )
конечно, покупают не программисты, но кто-то же должен сказать, что именно купить

допустим, программисту сказали: внедряем статический анализ, выбери тулзу для этого, скачай и проверь штук 5 разных, а он даже (утрирую) не смог скачать, то будет ли принято решение о покупке?
по моему опыту, человек, который знает, что такое статический анализатор с/с++ кода для 64битных приложений, скорее постарается избежать общения (даже посредством емейла), если есть возможность просто скачать
>Да это понятно, просто провинция мы. Нет у нас UX-специалистов.
тем более фрилансеры Вам в помощь

юзабилити действительно ужас
я был в шаге от того, чтобы звонить спрашивать «как скачать» )
залил на депозит, смотрите пост
залил на депозит, смотрите пост

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность