I pass a stringbuild out variable to function which parameter type is out stringbuild, but compiler tel me
"Before leave function, You must assign value to sbValue"
public void FuncOutParamString(out StringBuilder sbValue)
{
sbValue.Append("wold!");
}
private void btnOutParam_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("=================== Out Parameter ===================");
// Declare a variable but don't assign a value to it ******************************
int y = 0;
// Pass it in as an output parameter, even though its value is unassigned
FuncOutParamInt(out y);
// It's now assigned a value, so we can write it out:
Console.WriteLine(y);
// Declare a variable but don't assign a value to it ******************************
StringBuilder sb = new StringBuilder();
sb.Append("Hello ");
FuncOutParamString(out sb);
Console.WriteLine(sb);
}
Sorry, I need 10 reputation to post image
[out] means to be created. [class] is a reference type.
public void FuncOutParamString(StringBuilder sbValue)
{
sbValue.Append("wold!");
}
public void FuncOutParamStringRef(ref StringBuilder sbValue)
{
//if(...)
sbValue = new StringBuilder();
}
public void FuncOutParamStringOut(out StringBuilder sbValue)
{
sbValue = new StringBuilder();
}