It is a bit tricky when you think of a StringBuilder and a string since you might think that they are both reference types. But you would do this:
Code:
void Update(StringBuilder text) {...}
void Update(ref string text) {...}
The reason is that strings are immutable.
Consider this
Code:
void Update(string text) {...}
...
string str = "Hey";
Update(str);
What will happen is that the function will do text = str. But since strings are immutable the value of the string will be copied not the "reference". If it was a StringBuilder which is like a string but mutable the actual reference (the pointer - the location in memory) would be copied and you would have been OK. So it is not their type, it is the way they are copied.
The thing you need to know is that strings are kind of an exception of a reference type and you shouldn't use them as such. So you would just need the "ref" keyword.