Если вы просто вызовите exit в bash без параметров, он вернет код выхода последней команды. В сочетании с ИЛИ bash должен вызывать выход только в случае неудачи предыдущей команды. Но я не проверял это.
command1 || exit; command2 || exit;
Bash также будет хранить код выхода последней команды в переменной $ ?.
Nope, I'm pretty confident there's nothing existing in the BCL that can do this. Your best option is precisely what you have proposed I think. The implementation of ValueWrapper
really need not be any more complicated than what you have proposed.
Of course, it's not guaranteed to be thread-safe, but if you need that you can simply convert the automatic property into a standard one with a backing variable and mark the field as volatile
(to insure the value is up-to-date at all times).
Если вам нужно только записать значение, тогда другой метод будет:
public IEnumerable<whatever> Foo(Action<int> setter) { ... }
int value = 0;
foreach(var x in Foo(x => {value=x;}) { ... }
По совпадению, я сделаю серию статей о причинах, по которым существует так много глупых ограничений на блоки итераторов в мой блог в июле. "Почему нет параметров ref?" будет в начале серии.
http://blogs.msdn.com/ericlippert/archive/tags/Iterators/default.aspx