Tuesday, October 20, 2009

C# Pass By Reference

C# like Java passes parameters by value for value types and reference for reference types. However, you can override pass-by-value in C# for value types using the ref and out keywords. The difference between the two is that out does not require the parameter to have been initialized before being passed to your method.

Sample:

public void assignToRefForValueType(ref int refValType, out int outValType) {
refValType = 2;
outValType = 4;
}

public void testAssignToRefForValueType() {
int valueType = 0;
int outValueType;
assignToRefForValueType(valueType, outValueType);

//Prints 2, 4
System.Console.WriteLine("New values for ref and out: {0}, {1}",
valueType, outValueType);
}

No comments:

Post a Comment