C# 内存的分配管理
 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())
 //{
 // ? ?// ...?
 //}
 ?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!