在引用類型上調用ObjectIDGenerator方法兩次,id值相同。值類型ObjectIDGenerator方法在C#中
test a = new test();//reference type
bool isFirstTime;
ObjectIDGenerator IDGenerator = new ObjectIDGenerator();
long theID = IDGenerator.GetId(a, out isFirstTime);
Console.WriteLine(theID);
Console.WriteLine(isFirstTime);
theID = IDGenerator.GetId(a, out isFirstTime);
Console.WriteLine(theID);
Console.WriteLine(isFirstTime);
輸出如下:
真
假
對象 'A' 僅具有一個ID。
但是,當在值類型上調用ObjectIDGenerator方法時,事情看起來很奇怪。
int a = 100;//value type
bool isFirstTime;
ObjectIDGenerator IDGenerator = new ObjectIDGenerator();
long theID = IDGenerator.GetId(a, out isFirstTime);
Console.WriteLine(theID);
Console.WriteLine(isFirstTime);
theID = IDGenerator.GetId(a, out isFirstTime);
Console.WriteLine(theID);
Console.WriteLine(isFirstTime);
輸出:
真
假
這是爲什麼呢?