C#中类型分为值类型和引用类型
清楚了他俩的区别,像验证下,如果在C++中,就可以通过指针直接看地址,但是C#中,找了一会儿没找到方法(主要是我技术比较菜)。
不过,用根基类的ReferenceEquals静态方法可以判断两个对象的引用是否相等
使用方法如下:
Object.ReferenceEquals(arrayN1, arrayN2) 返回值是布尔类型
值类型: 比如 int
int a = 5;
int b = a; //这时,b有自己的内存空间,a只是把他的值赋给了b。改变b的值,不会影响到a。
引用类型:如果 类 class
class Dog{}
class Dog1 = new Dog();
class Dog2 = Dog1; //这时,Dog2没有自己的内存空间,Dog1把自己的内存地址给了2,这时,如果该Dog2的值,Dog1的值也随之改变。
例如:
namespace 测试
{
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = a;
int[] arrayN1 = { 12, 3, 4, 5, 6, 7 };
int[] arrayN2 = arrayN1;
// 用根基类的ReferenceEquals静态方法可以判断两个对象的引用是否相等
Console.WriteLine(Object.ReferenceEquals(arrayN1, arrayN2));
Console.ReadKey(true);
}
}
}