Как уже упоминалось, вы должны использовать переменную в этом случае. Однако вы можете обернуть этот шаблон поведения в метод многократного использования, используя лямбда-функции C # 3.0:
static T TryFinally<T>(Func<T> body, Action<T> finallyHandler) {
T result = default(T);
try {
result = body();
} finally {
finallyHandler(result);
}
return result;
}
Метод TryFinally
позволяет вам написать то, что вам изначально требовалось, без повторения шаблона:
TryFinally(() => {
// body of the method
return 1;
}, result => {
// do whatever you need with 'result' here
});