リファレンスタイプについて興味深いテスト
3403 ワード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyTest
{
class Program
{
static void Main(string[] args)
{
MyClass first = new MyClass();
first.value = " ";
MyClass second = first;
//
Console.WriteLine(" :" + second.value);
//
first.value = " ";
Console.WriteLine(" :" + second.value);
first = null;
//Console.WriteLine("first null first :" + first.value);//
Console.WriteLine("first null second :" + second.value);
Console.ReadKey();
}
}
public class MyClass
{
public string value { get; set; }
}
}
上から得られる:
1.まずMyClassは参照タイプ
2.firstの値が変わるとsecondの値も変わる
3.firstがnullを設定すると、first内のポインタが空になります(firstにアクセスするとポインタが空になります)が、メモリ内のオブジェクトは空になりません(secondにアクセスしても値を取得できます)