2010-03-09 2 views
1

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

Это нормально/полезно для инициализации функции?

Пример:

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

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

ответ

4

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

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

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

0

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