に通された後に変更されていないので、私は明らかにプログラミングにかなり新しいですが、これは私が取るしようとしているC#の - なぜ、この変数はメソッド
が動作しない理由を把握しようとしていますmynameという文字列を追加し、その先頭にMr.を追加します。私は単純にmyname = "Mr. " + myname
としてそれを行うことができます知っているしかし、私は変数の値を変更するメソッドを使用する方法を理解しようとしています。だから、なぜこれは変わらないのですか?
public class Program
{
public static void Main(string[] args)
{
string myname = "harry";
Console.WriteLine(myname); //output is harry
namechanger(myname); //this should modify harry to Mr. Harry
Console.WriteLine(myname); //output is still harry?
}
static string namechanger(string name)
{
name = "Mr. " + name;
return name;
}
}
すべての型は、プリミティブ型だけでなく、このように動作します。 – aquinas
おそらく賢明な意味で、 'class'と' struct'のメソッドを呼び出すと、ポインタが1つ、構造体全体が1つ異なります。 「値渡し」と「参照渡し」は、その動作の違いを区別するために使用される用語です。 – Knetic
@Knetic - いいえ、それは正しくありません。 aquinasは正しいです。 – Enigmativity