ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

快速掌握C#语言基础知识点(6.Object类型)

快速掌握C#语言基础知识点(6.Object类型) 关注我的动态using System.Runtime.InteropServices; namespace _06.Object类型 { internal class Program { //定义一个表示人的私有类 private class Person { public Person(string personId, int tall, int weight, int sex) { PersonId personId; Tall tall; Weight weight; Sex sex; } public string PersonId { get; set; } public int Tall { get; set; } public int Weight { get; set; } public int Sex { get; set; } } static void Main(string[] args) { //建立一个Person引用类型 var Person1 new Person(1, 170, 60, 1); //赋值制为Object类型(传递的是引用即地址) object objPerson1 Person1; //再转为“人”类型 var Person2 (Person)objPerson1; //比较引用类型的地址是否相同 Console.WriteLine(Person1 Person2 ? (Person1 Person2)); //整形变量 var int1 1; //装箱(在堆里建立新对象空间) object objInt1 int1; //拆箱(从堆里还原新的整形变量) var int2 (int)objInt1; //三者的物理地址都不一样 var add1 getMemory(int1); var add2 getMemory(int2); var addObject getMemory(objInt1); Console.WriteLine(int1 addr add1); Console.WriteLine(int2 addr add2); Console.WriteLine(objInt1 addr addObject); Console.ReadLine(); } public static string getMemory(object o) // 获取引用类型的内存地址方法 { GCHandle h GCHandle.Alloc(o, GCHandleType.WeakTrackResurrection); IntPtr addr GCHandle.ToIntPtr(h); return 0x addr.ToString(X); } } }
返回列表