Если циклы while и «if Statement» никогда не вводятся, тогда выходные параметры не назначаются.
Возможно, логически you знает, что эти пути кода будутвсегда быть введенным. компилятор этого не знает.Компилятор считает, что каждое «если» и «время», которое имеет непостоянное условие, может быть введено или пропущено.
Компилятор в этом случае может выполнить более сложный анализ потока.Анализ «перед« если », результат либо нулевой, либо не нулевой; если он нулевой, то тело« если »назначает выходные параметры. Если это не ноль, то единственный способ, который мог бы произойти, это еслиВ то время как 'body назначил параметры out, следовательно, параметры out назначены. "
Этот уровень анализа, безусловно, возможен, но существующий алгоритм анализа потока, описанный в спецификации, имеет некоторые приятные свойства, а именно, что он быстро , легко понять , легко реализовать , обычно точно и дает только ложные срабатывания, а не ложные отрицания .