Когда компилятор C# будет записан в C#, каждый сможет изменить его?

При обновлении или при выходе из текущей страницы ngOnDestroy вызываться не будет. Приложение будет просто уничтожено браузером.

Только когда Angular2 удаляет компонент из DOM из-за того, что вы уходите или вызываете destroy() для динамически созданного компонента, вызывается ngOnDestroy().

Вы можете прослушать beforeunload и unload самостоятельно, если вам нужно выполнить какое-либо действие, прежде чем приложение будет уничтожено браузером.

См. Также

7
задан GEOCHET 15 June 2009 в 19:51
поделиться

5 ответов

Андерс Хейлсберг сказал:

Это одно из направлений, которое мы ищем для будущих версий С #. На самом деле, я рассматриваю метапрограммирование как часть нашего более крупного «Компилятора. как услугу », над которой мы работаем для будущего выпуска. Мы хотите открыть наш компилятор, чтобы он стал API, к которому вы можете обращаться скомпилировать фрагмент кода и получить обратно деревья выражений и / или IL. это позволяет использовать целый ряд сценариев, таких как приложение программируемость, интерактивная подсказка, рефакторинг, написанный пользователем, и доменные языки, в которые встроены маленькие островки C #
Источник

Он также сказал в другом месте (в интервью Channel9 ), что они переносили ядро ​​компилятора C # на управляемый код, чтобы сделать это возможным.

Существует

1135572] демо этого доступно с последнего PDC. Компилятор C # действительно является управляемым кодом.

11
ответ дан 6 December 2019 в 07:28
поделиться

Это действительно зависит от множества разных вещей. Включая, но не ограничиваясь ...

  1. Будет ли Microsoft писать компилятор C # на C #?
  2. Поставляется ли компилятор в исходной и двоичной форме или только в двоичной форме?
  3. Вы хотите написать двоичное расширение или просто изменить исходный код?
  4. Под какой лицензией будут указаны исходный код и двоичный файл?
  5. Вы хотите использовать двоичный файл в коммерческом или хобби-проекте?

Теперь что касается ответов на эти вопросы, у меня есть без понятия. Я также не верю, что существует определенный ответ на основной вопрос №1. Итак, общий ответ - большой «Не знаю»

5
ответ дан 6 December 2019 в 07:28
поделиться

Серьезно. Нет. Это было бы кошмаром поддержки для Microsoft. Компиляторы "начальной загрузки", то есть компиляторы, которые компилируют язык, на котором они написаны, существуют (и широко распространены) по крайней мере с 70-х годов. Это не имеет ничего общего с тем, чтобы позволить клиенту изменять исходную кодировку, однако проблема заключается в возможности поддержки. Так что на данный момент надстройки VS-IDE как можно ближе к вам.

3
ответ дан 6 December 2019 в 07:28
поделиться

Если я правильно понимаю ваш вопрос, то я думаю, что ответ частично положительный: создание компилятора C # на C # (или на самом деле в .NET) упростит обнаружение ловушек в процесс компиляции, который пользователи смогут использовать внутри самого языка.

В качестве примера языка .NET с компилятором .NET см. Boo . Поскольку компилятор Boo написан на .NET (в основном на C # и немного Boo, если быть точным), очень легко подключиться к процессу компиляции с помощью таких вещей, как макросы компиляции и метапрограммирование.

Я полагаю, что когда компилятор C # сам будет написан на C #, метапрограммирование на C # станет намного проще и неизбежно. Однако я сомневаюсь, что Microsoft сделает весь компилятор «изменяемым пользователем», поскольку как указано в других ответах, это будет означать кошмар поддержки. Однако существуют другие компиляторы C # с открытым исходным кодом , которые могут быть более либеральными в своем подходе.

3
ответ дан 6 December 2019 в 07:28
поделиться

Да, версия компилятора C # будет «официальной версией Microsoft C #», и с ее помощью вы можете создать свой «собственный язык C #». Затем вы можете создать компилятор, написанный на вашем «собственном языке C #» для компиляции самого себя или других программ

2
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: