Здравствуйте, hi_octane, Вы писали:
_>А вот ещё редкая фича:
_>_>virtual void Initialize()
_>{
_>//такое объявление уходит в тело класса
_>//но сама переменная видна только внутри этой функции и её наследниках (если protected)
_>private bool initialized = false;
_>if(initialized)
_> return;
_>}
_>
_>Может всего пару раз на проект нужны такие переменные которые видны в одном конкретном методе. Удобно? Ну конечно.
Похожее можно запилить в имеющемся C#,
например
static void initOnce( ref bool bInitialized, Action whatToDo );
К>>По-моему наглядный, и ничего не мешает?
_>Я всё-таки предпочитаю using(await lockable), который в dispose отпускается. Но это всё костыли, от недостатка нормальных решений.
Во-первых, добавление фич в язык это ж не бесплатно, например растёт сложность чтения кода.
Во-вторых, в тех случаях когда мне нужно генерировать C# код на этапе компиляции, в коробке со студией есть для этого T4 text templates.