using System.ComponentModel;
 using System.Runtime.InteropServices;
 //内存的分配
  int n = 100000;//长度
 IntPtr buffer = Marshal.AllocHGlobal(sizeof(int) * n);
try
 {
     var t = buffer + (n * 10) * sizeof(int);
     var p = Marshal.PtrToStructure<int>(t);
     //内存的分配2
     //拆箱:拆箱就是将一个引用型对象转换成任意值型!比如:
     int i = 0;
     System.Object obj = i;
     int j = (int)obj;
     //装箱:装箱就是隐式的将一个值型转换为引用型对象。比如:
     //int i = 0;
     //Syste.Object obj = i;
     //内存的回收
     //GC.Collect();
 }
 catch (Exception e)
 {
     Console.WriteLine(e);
 }
//内存的释放
 Marshal.FreeHGlobal(buffer);
Console.WriteLine("Hello, World!");
 Console.Read();
//WPF 内存的保护
 public class MyViewModel
 {
     public string _someText = "memory leak";
     public string SomeText
     {
         get { return _someText; }
         set
         {
             _someText = value;
         }
     }
 }
 //using 也可以避免内存泄露保护 Dispose方法  内存的保护
 //using (MemoryStream stream = new MemoryStream())
 //{
 //    // ... 
 //}