Класс строки неизменный . Таким образом, вы не можете сделать следующее:
private void MyFunction()
{
string myMessage = "Just a message";
ManipulateMessage(myMessage);
Console.WriteLine(myMessage);
}
private void ManipulateMessage(string message)
{
message = DateTime.Now + " " + message;
}
Чтобы это сработало, вы должны вернуть строку:
private void MyFunction()
{
string myMessage = "Just a message";
myMessage = ManipulateMessage(myMessage);
Console.WriteLine(myMessage);
}
private string ManipulateMessage(string message)
{
return DateTime.Now + " " + message;
}
Или используйте 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 + " ");
}
Обновление после комментария от KMan
Хорошо, существует третья версия, использующая ключевое слово ref
private void MyFunction()
{
string myMessage = "Just a message";
ManipulateMessage(ref myMessage);
Console.WriteLine(myMessage);
}
private void ManipulateMessage(ref string message)
{
message = DateTime.Now + " " + message;
}