找到相关内容 17
菜鸟CLR VIA C#之旅(1):品味细节,CLR的执行模型
从菜鸟刚接触到.net时,菜鸟就知道CLR VIA C#是一本很牛的书,为什么?CSDN会告诉你——总会有人问“学.net什么书籍好?”,这个本没有标准答案的问题,菜鸟却从各种大牛一致的回答中找到了标准答案:C#入门经典—>C#高级编程—&g
http://www.cyqdata.cn/cnblogs/article-detail-52711 
菜鸟CLR VIA C#之旅—开始旅行:千里之行始于足下
    菜鸟踏上CLR VIA C#之旅,小学成绩一般般,初中成绩普普通通,高中成绩勉勉强强,三流大学凑活毕业。偶然间踏上了北京之旅,也开始了他作为程序员的梦想。就这么一个摆在大街上不会有人再看第二眼的普通到无法再普通的普通人,就是本次旅行的菜鸟了。希望《CLR VIA C#》这本圣经能带
http://www.cyqdata.cn/cnblogs/article-detail-52431 
跟小静读CLR via C#(11)-无参属性、索引器
提起属性,我们都不陌生。它用起来就像访问public数据成员一样,但实际上是调用了内部定义的相应方法。通过使用属性保持了较好的数据封装,而且访问很方便,接下来我们共同复习以下CLR允许定义的两种属性:无参属性和有参属性(索引器)。 一、 无参属性 1. 定义属性 无参属性就是我们最常见的属性方式,在赋值时可以加入
http://www.cyqdata.cn/cnblogs/article-detail-52293 
跟小静读CLR via C#(10)-参数
  最近几天学了参数,其实对于参数本不陌生,从上学学C语言基础的时候就学过了。不过细心学下来,还是收获了一些。 一、 命名参数、可选参数 命名参数和可选参数是在Visual C#2010中引入的新特性。 笨地儿我个瓜不兮兮的,今天才知道。 可选参数:定义方法时为参数设置默认值,调用该方法时可以省略为某些
http://www.cyqdata.cn/cnblogs/article-detail-42731 
跟小静读CLR via C#(09)-扩展方法
对于一些现成的类,如果我们想添加一些新的方法来完善功能,但是不想改变已有的封装,也不想使用派生类,那么该怎么办呢?这里我们可以使用扩展方法。 一见钟情--初识扩展 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 我们首先来看个例子,有个
http://www.cyqdata.cn/cnblogs/article-detail-42568 
跟小静读CLR via C#(08)-操作符
跟小静读CLR via C#(08)-操作符 对于操作符,我们并不陌生,例如+,-,*,%等二元操作符,以及++,!等一元操作符。但是对于非基元类型,我们需要通过一些自定义方法才能使用这些操作符。今天主要和大家分享关于操作符重载和转换操作符的知识。 一、操作符重载方法 CLR并不知道操作符,操作符重载对于它来说只是
http://www.cyqdata.cn/cnblogs/article-detail-42475 
跟小静读CLR via C#(06)- 构造器
跟小静读CLR via C#(06)- 构造器 最近忙着看新还珠,好几天不学习了。玩物丧志啊,罪过罪过。 今天总结的是类构造器的知识,其实这方面的文章蛮多的,可还是觉得亲自写一下对自己的思考和认识会有提高。 对于构造器,大家应该都不陌生,它主要是用来进行初始化状态的。包括实例构造器和类构造器两种,先给大家看个实际的例子。 class Dog : Animal  &n
http://www.cyqdata.cn/cnblogs/article-detail-41976 
跟小静读CLR via C#(05)- 访问限定、数据成员
跟小静读CLR via C#(05)- 访问限定、数据成员 今天跟大家分享一下关于访问限定和数据成员的知识。主要包括以下两点: Abstract, sealed, virtual, new, override怎么用?Const 和 readonly好像都表示不能改变的值,有什么区别呢? 一、 访问限定 类和方法有一些访问限定符,如private,public等。除此之外,还包含一些预定义特性
http://www.cyqdata.cn/cnblogs/article-detail-41509 
跟小静读CLR via C#(04)- 本是同根生
跟小静读CLR via C#(04)- 本是同根生 说起.NET中的类,本是同根生,一点不为过。因为CLR要求所有类都要继承自System.Object。所有对象都必须提供一组通用操作,包括对象的等值性、唯一性、散列码以及克隆。 一、等值性——Equals()方法 有时候我们需要比较两个对象是否相等,比如在一个ArrayList中进行排序查找等操作时。 System.Object提供了E
http://www.cyqdata.cn/cnblogs/article-detail-41387 
跟小静读CLR via C#(03)- 对象创建和类型转换
跟小静读CLR via C#(03)- 对象创建和类型转换 本节内容不太复杂,主要是介绍类的实例创建过程,以及类型之间相互转换的知识。 一、 创建对象 CLR要求用new关键字创建类的实例。例如: Student XiaoJing=new Student(“XiaoJing”,”1986”); 那么在创建过程中,究竟发生了什么事呢? 分配
http://www.cyqdata.cn/cnblogs/article-detail-41247 
CLR(公共语言运行时)到底藏在哪?
大家好,今天这篇文章不是由我来跟大家讲解什么技术,而是我们一起来探讨.NETFrameWork中的重要部件CLR的秘密,众所周知CLR是所有非托管代码的运行时环境,.NET技术平台发展到今天已经经历了近10年的风风雨雨,各大书店数不胜数的.NET技术书籍,大部分都是讲解一些怎么运用.NET平台来发开某种应用软件,如:B/S的ASP.NET、C/S的Winform等等,本人苦于想寻找一本能讲解平台背
http://www.cyqdata.cn/cnblogs/article-detail-40238 
步步为营 C# 技术漫谈 三、公共语言运行库(CLR)
概述 .NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库.通常将在CLR的控制下运行的代码称为托管代码(managed code). 但是,在CLR执行编写好的源代码之前,需要编译它们(在C#中或其它语言中).在.NET中,编译分为两个阶段: 1、把源代码编译为Microsoft中间语言(IL)。 2、CLR把IL编译为平台专用的代码。
http://www.cyqdata.cn/cnblogs/article-detail-39846 
关于CLR内存管理一些深层次的讨论 [下篇]
《上篇》中我们主要讨论的是程序集(Assembly)和应用程序域(AppDomain)的话题,着重介绍了两个不同的程序集加载方式——独占方式和共享方式(中立域方式);以及基于进程范围内的字符串驻留。这篇将关注点放在托管对象创建时内存的分配和对大对象(LO:Large Object)的回收上,不对之处,还望各位能够及时指出。   一、从类型(Type)与实例(Instance
http://www.cyqdata.cn/cnblogs/article-detail-38854 
通过CLR与托管代码思软件开发学习
1、 .NET托管代码 现实生活中的托管,托管者只需要向被托管者发出托管请求,不需要知道被托管者怎么处理,只等待接收被托管者向托管者返回的结果。 .NET环境中托管也与此大同小异,.NET中的托管编码语言通过一个名为CLR(公共语言运行时)的“运行时”读写其他的内存或硬件资源,并利用CLR的功能(内存管理、程序集加载、安全性、异常和线程同步等),来完成编码的编译和执行。 2
http://www.cyqdata.cn/cnblogs/article-detail-38570 
【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)—托管资源优化—监测CLR性能
构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)—托管资源优化—监测CLR性能     前言:在上一篇文章中讲述了一些垃圾回收的一些知识,本篇就讲述如何来监测CLR是否导致了一些性能问题。    本篇的议题如下: 内存问题概述(前篇) 托管资源优化(前篇)     
http://www.cyqdata.cn/cnblogs/article-detail-25333 
SQL Server Assembly (SQL CLR) 还原数据库后的问题
    前端时间给别人做迁移数据库时候,遇到一些问题.大致是,如果备份的数据库存在EXTERNAL_ACCESS 和UNSAFE的程序集,那么在还原的时候程序集会出现一些奇怪的错误: 消息 10314,级别 16,状态 11,第 1 行 在尝试加载程序集 ID 65536 时 Microsoft .NET Framework 出错。服务器可能资源不足,或者
http://www.cyqdata.cn/cnblogs/article-detail-4309 
CLR的装箱与拆箱
CLR类型系统有两种主要类型—Reference Type和ValueType。前者是在托管堆中被分配内存并接受管理,后者则有两种形态--装箱与未装箱,对于装箱形态的值对象是在托管堆中,未装箱形态的值对象是在栈上分配。 CLR堆上对象和栈上对象的差异 每一个堆上对象都有两个额外的字段,一个是类型引用表的指针,用于实现多态,类似于C++的多态机制,另一个字段是SyncBlockIndex,用于实现CLR线程同步机制。栈上对象则无这两个字段。 装箱的过程 装箱: 在堆上开辟内存,包括2个额外字段+值对象大小。 将值对象复制过去 3.返回新分配对象的地址。 拆箱的过程 1.如果为null,跑出NullReferenceException 2.如果引用指向的不是一个期望对象的已装箱对象,跑出InvalidCastException。 3
http://www.cyqdata.cn/cnblogs/article-detail-2260