Проверить, запущен ли процесс в Windows / Linux

Я в первую очередь разработчик на C ++, но недавно я работал над проектом на C #. Сегодня я столкнулся с неожиданным, по крайней мере для меня, поведением при использовании инициализаторов объектов. Я надеюсь, что кто-то здесь сможет объяснить, что происходит.

Пример A

public class Foo {
    public bool Bar = false;
}

PassInFoo( new Foo { Bar = true } );

Пример B

public class Foo {
    public bool Bar = true;
}

PassInFoo( new Foo { Bar = false } );

Пример A работает так, как я ожидал. Для объекта, переданного в PassInFoo, для параметра Bar установлено значение true. Однако в примере B для foo.Bar установлено значение true, несмотря на присвоение false в инициализаторе объекта. Что могло бы привести к тому, что инициализатор объекта в примере B, казалось бы, игнорировался?

5
задан Krzysztof Bociurko 24 June 2013 в 16:34
поделиться