Исходный код для Process.Kill () в показывает настройку кода выхода на -1 (по состоянию на сентябрь 2012 года). Операционная система Windows на самом деле использует 32-битные значения без знака для кодов выхода, но я считаю, что переводы со знаком-> без знака-> со знаком в C # должны работать (мне нужно только проверить на ноль или ненулевое значение, так что это не имеет значения для мой код).
С другой стороны, это явно недокументированное поведение (почему?), Поэтому Microsoft может изменить его завтра и взломать мой код, установив код выхода равным 0.