我想编写自己的定制复合语句,其机制类似于
我已经尝试搜索了解是否有类似问题的人提出过类似的问题,但我无法正确地弄清这种“代码作用域”被称为什么,除了文档说这些是复合语句之外。
我知道“lock”和“using”是关键字。我不想有自己的关键字,因为我知道这是不可能的。
例如,在C#中是否可能做到这一点:
与其进行以下操作:
这可以简化为:
当然,这不一定只是一个单行调用。封装代码的开始和结束可以是多行代码,这些代码将被插入自定义复合语句中。
using
和lock
机制,其中它们在编译之前在语句块的开头和结尾注入代码。我已经尝试搜索了解是否有类似问题的人提出过类似的问题,但我无法正确地弄清这种“代码作用域”被称为什么,除了文档说这些是复合语句之外。
我知道“lock”和“using”是关键字。我不想有自己的关键字,因为我知道这是不可能的。
例如,在C#中是否可能做到这一点:
与其进行以下操作:
StartContext(8);
//make method calls
EndContext();
这可以简化为:
DoSomethingInContext(8) {
//make method calls
}
当然,这不一定只是一个单行调用。封装代码的开始和结束可以是多行代码,这些代码将被插入自定义复合语句中。
IDisposable
(尽管这是否为滥用是一个观点问题),要么使用委托,例如DoSomethingInContext(8, () => { ... });
。 - Lasse V. Karlsen