Пример
Код: Выделить всё
[Fact]
public void Block_Return_LikeGoto()
{
var type = typeof(int);
var label1 = Expression.Label(type);
var label2 = Expression.Label(type);
var body = Expression.Block(
Expression.Return(label1, Expression.Constant(1)),
Expression.Label(label1, Expression.Constant(2)),
Expression.Label(label2, Expression.Constant(3)));
var func = Expression.Lambda(body).Compile();
Assert.Equal(3, func());
}
- Когда именно Return и Goto ведут себя по-разному?
- Бывают ли случаи, когда Goto никогда не сможет заменить Return?
Подробнее здесь: https://stackoverflow.com/questions/798 ... pression-t
Мобильная версия