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 件のコメント:
コメントを投稿