Может быть потому, что C # позволяет записывать перегрузки следующим образом:
class X
{
public void Y(int i) { ... }
public void Y(out int i) { ... }
}
В этом случае компиляторы не могут понять, что метод с ключом out
должен вызываться, если вы не пишете это ключевое слово при вызове метода. И вообще вы должны написать out
когда метод объявлен с этим ключевым словом.
И, конечно, когда вы пишете out
при вызове метода, вы точно знаете, что этот метод может быть изменен в методе. Это очень читабельно.
MSDN Статья