Por que um parâmetro out não pode ter um valor padrão?
Atualmente, ao tentar fazer algo em um método que utiliza um parâmetro out, preciso atribuir o valor do parâmetro out no corpo do método, por exemplo
public static void TryDoSomething(int value, out bool itWorkerd)
{
itWorkerd = true;
if (someFavourableCondition)
{
// if I didn't assign itWorked variable before this point,
// I get an error: "Parameter itWorked must be assigned upon exit.
return;
}
// try to do thing
itWorkerd = // success of attempt to do thing
}
Eu gostaria de poder definir um valor padrão doitWorked
parâmetro para que eu não precise definir arbitrariamente o valor no corpo do método
public static void TryDoSomething(int value, out bool itWorkerd = true)
{
if (someFavourableCondition)
{
// itWorked was already assigned with a default value
// so no compile errors.
return;
}
// try to do thing
itWorkerd = // success of attempt to do thing
}
Por que não é possível atribuir um valor padrão para umout
parâmetro?