Изменяемая обертка значения вводит для передачи в итераторы

Если вы просто вызовите exit в bash без параметров, он вернет код выхода последней команды. В сочетании с ИЛИ bash должен вызывать выход только в случае неудачи предыдущей команды. Но я не проверял это.

command1 || exit;
command2 || exit;

Bash также будет хранить код выхода последней команды в переменной $ ?.

5
задан Colin Burnett 26 June 2009 в 18:01
поделиться

2 ответа

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).

4
ответ дан 14 December 2019 в 01:14
поделиться

Если вам нужно только записать значение, тогда другой метод будет:

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

5
ответ дан 14 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: