Since C# 1.0, the language has supported passing parameters to a method by reference using the ref, but there exists no mechanism to return a safe reference to stack or heap memory locations.
In C# 7.0, Microsoft has provided the option for developers to return values by reference and store them in local variables as a reference pointer.
Before going into an example of return by reference, let us first look at an example of how the return by value works with a pass by reference parameter. In the following example, the GetAsValue method accepts a third parameter of type integer as a reference, and returns a value to the callee, which gets stored in the local variable name:
public static void DemoReturnAsValue() { var count = 0; var index = 0; string[] names = { "Kunal", "Manika", "Dwijen" };...