C# string型は参照型なのにrefをつけて関数に渡してもエラーにはならない理由
C#ではstring
型は参照型なのでなのですがその参照型にref
を使うと内部的にはどのような処理になっているのでしょうか?ref
は参照を渡すという意味なのですが参照型に参照を渡すとどうなるのでしょうか?実験してしてもエラーにもならずなおかつ実行内容を同じためどのような処理をしているかわかりません、教えてくれますでしょうか?
1,質問なのですがc++の int a; &a
といった書き方の&
も参照を渡してるという意味ですが
それと大体同じなのでしょうか?
static void Main(string[] args)
{
del_addS add = (ref string a, ref string b) =>
{
return a + b;
};
del_addS add2 = delegate (ref string x,ref string y)
{
return x + y;
};
del_add adds = delegate (string x, string y)
{
return x + y;
};
string aa = Console.ReadLine();
string bb = Console.ReadLine();
//string s = add(ref aa,ref bb);
//string s = add2(ref aa,ref bb);
string s = adds(aa,bb);
Console.WriteLine(s);
Console.ReadKey();
}