EffectiveC#を読んで、基本に立ち返ってみた。
(参照渡)
class Program
{
static void Main(string[] args)
{
var val = new Class();
var val2 = val; //参照渡し
val.MyProperty = 100;
//100 が表示される
Console.WriteLine(val2.MyProperty);
}
}
class Class
{
public int MyProperty { get; set; }
}
classは参照型であり、代入は参照がコピーされる。なので、 valとVal2の指す実体は同じ。
(値渡)
class Program
{
static void Main(string[] args)
{
var val = new Struct();
var val2 = val; //値渡し
val.MyProperty = 100;
//0 が表示される
Console.WriteLine(val2.MyProperty);
}
}
struct Struct
{
public int MyProperty { get; set; }
}
structは値型であり、代入はコピーが作成されるので、valを変更してもval2に影響はない。
0 件のコメント:
コメントを投稿