Я хотел бы написать свои собственные составные операторы, которые имеют механизм, аналогичный механизмам using
и lock
, где они вводят код в начале и конце блока операторов перед компиляцией.
Я попытался найти вопросы, которые, возможно, задавали подобные вопросы, но я не мог правильно понять, как называется этот вид «области действия кода», кроме документации, в которой говорится, что это составные операторы.
Я знаю, что «блокировка» и «использование» являются ключевыми словами. Я не хочу иметь свои собственные ключевые слова, так как знаю, что это невозможно.
Я не уверен, что это возможно в С#, например:
Вместо того, чтобы делать:
StartContext(8);
//make method calls
EndContext();
Это может быть сокращено до:
DoSomethingInContext(8) {
//make method calls
}
Конечно, это не обязательно должен быть просто однострочный вызов. Началом и концом инкапсулированного кода может быть несколько строк кода, которые вставляются пользовательским составным оператором.
IDisposable
(хотя вопрос о том, является ли это злоупотреблением, зависит от вашего мнения), либо использовать делегаты, такие какDoSomethingInContext(8, () => { ... });
- person Lasse V. Karlsen   schedule 19.02.2018