При использовании параметров в функции, является ли хорошей практикой инициализировать их в функции? - PullRequest
1 голос
/ 09 марта 2010

У меня есть функция, которая использует параметры для возврата нескольких значений вызывающей стороне. Я хотел бы инициализировать их в функции, но я не был уверен, что это плохая идея, поскольку вы не знаете, когда вызываете функцию, что она сразу изменит значения. Вызывающая сторона может предположить, что после возврата функции, если все, что она делает, не работает, значения будут теми, к которым они были инициализированы в вызывающей программе.

Это нормально / хорошо для меня, чтобы инициализировать в функции?

Пример:

public static void SomeFunction(int ixID, out string sSomething)
{
    sSomething = "";
    sSomething = something(ixID);

    if (sSomething = "")
    {
        somethingelse();
        sSomething = "bar"
    }
}

Ответы [ 2 ]

4 голосов
/ 09 марта 2010

Да - с выходным параметром вы должны присвоить его перед возвратом.

Хотя переменные, передаваемые в качестве аргументов out, не нужно инициализировать перед передачей, вызывающий метод требуется для присвоения значения до возврата метода.

Вам не нужно инициализировать их для пустых значений в самом верху вашей функции. Вы можете назначить значения, когда вы их знаете. В вашем примере первая строка не нужна, поскольку вы присваиваете параметр out во второй строке.

0 голосов
/ 09 марта 2010

Я почти уверен, что ответ да, вы должны инициализировать их в функции, потому что, как я писал в примере с моим Q, Visual Studio жаловалась, что я должен присвоить sSomething перед возвратом .

...