The string class is immutable. So you can't do the following:
private void MyFunction() { string myMessage = "Just a message"; ManipulateMessage(myMessage); Console.WriteLine(myMessage); } private void ManipulateMessage(string message) { message = DateTime.Now + " " + message; } To get this to work you have to pass back the string:
private void MyFunction() { string myMessage = "Just a message"; myMessage = ManipulateMessage(myMessage); Console.WriteLine(myMessage); } private string ManipulateMessage(string message) { return DateTime.Now + " " + message; } Or Use a StringBuilder
private void MyFunction() { StringBuilder myMessage = "Just a message"; ManipulateMessage(myMessage); Console.WriteLine(myMessage.ToString()); } private void ManipulateMessage(StringBuilder message) { message.Insert(0, DateTime.Now + " "); } Update after comment from KMan
Ok, there is a third version using the ref keyword
private void MyFunction() { string myMessage = "Just a message"; ManipulateMessage(ref myMessage); Console.WriteLine(myMessage); } private void ManipulateMessage(ref string message) { message = DateTime.Now + " " + message; }