This has nothing to do with string
being a reference type. This is because the parameter is passed by value, not by reference.
If you modify your method like this, so that the parameter is passed by reference:
public static void Test(ref string testString)
{
testString = "Modified Value";
}
Then sample
will be modified.
See this article for more details about parameter passing.