CLR via C# - Char_String】的更多相关文章

//前面那个本来想重新编辑的,但是那个编辑器之前被我调到Markdown之后,改回Tiny MCE编辑器不出来 1.ToString()方法 & IFormattable & IFormatProvider 先说ToString() 在System.Int32中定义了4个ToString方法 1.无参的ToString()是重写Object的,(or ValueType)的2,3,4用法相同,第三个可以自定义Provider IFormattable接口 int实现了IFormattabl…
.NET中Char表示为16为的Unicode值,Char提供两个public const字段MinValue('\0',写成'\u0000'也是一样的)和MaxValue('\uffff'). Char.GetUnicodeCategory(char实例)来返回char所属的unicode类型,返回System.Globalization.UnicodeCategory枚举之一 '\0'的category为Control,所有类别如下 Console.WriteLine( Enum.GetNa…
引言 首先想给初学者推荐下<CLR via C#>这本好书,做.Net开发的开发者应该都读一下.为避免广告之嫌,所以这里只提供豆瓣书评的链接. CLR 作为.Net 程序跨平台运行的载体,和Java的JVM有着类似的功能(JAVA为跨平台而生,实现这一目标离不开JVM). 随着.NET Framework的日益发展CLR也有日新月异的变化.这些变化为开发带来更多有用的特性,在提高开发效率的同时也提高了程序的性能和稳定性. 如果大家觉得还有必要把这块更新的更好,还请多多反馈. 如果觉的对您有用还…
clr相关编译器编译生成的托管模块由四部分组成:PE32或32+头.clr头.元数据.IL代码. 元数据和IL代码完全对应,保持一致(:>)性. 元数据有很多用途: VS的智能感知,自动补全: 代码验证保证类型安全: 序列化.反序列化: 垃圾回收(从元数据得知哪些根引用了对象). 元数据包含两类表,一种描述源代码中定义的类型和成员:另一种描述代码引用的类型和成员.模块内部的一些元数据表的大小和偏移量在clr头中会有包含. 元数据是由几个表构成的二进制数据块.有三种表:定义表.引用表.清单表. 常…
引言 GC 作为CLR的垃圾回收器,让程序员可以把更多的关注度放在业务上而不是垃圾回收(内存回收)上.其实很多语言也有类似的东东, 如Java也有JIT 等等 GC基本概念 垃圾回收机制的算法有好多种,GC为Mark-Sweep算法. GC中分为三代,来优化管理不同生命周期的对象. 大部分的对象在Gen0就死掉了. Gen0 和Gen 1 又叫作ephemeral generations (短命代,个人翻译意见 ) 大于85,000bytes的对象会被直接分配到Large object heap…
1.CTS(Common Type System)通用类型系统 CTS不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展.任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射.所有.NET语言共享这一类型系统,实现它们之间无缝的互操作.该方案还提供了语言之间的继承性.例如,用户能够在VB.NET中派生一个由C#编写的类.我们可以将CTS 看成是所有.NET 语言的superset (union),而符合CTS 的各种不同的语言,其实都只是CT…
前言 MSSQLSERVER提供程序集,无疑可以让编程人员更加便捷的操作数据库数据,比如c#写的函数,可以在数据库当作sql的函数使用,你想想他对不熟悉数据库的程序员来说是有多么的嗨.这么好的机制,大家当然不能错过,但是对于数据库变更迁移,可能会存在障碍与不便.所以建议大家在使用sqlsesrver clr程序集的时候也要做个权衡,以免给数据库以后的扩张带来不便.建议大家单次数据,数据过滤,的时候使用sqlserver clr程序集.长期依赖的话,还是另外选择解决方案. MSSQLSERVER接…
一.所有类型都是从System.Obejct派生 1.下面两个类型定义是完全一致的: class Employee{ ... } class Employee:System.Object{ ... } 2.System.Object的公共实例方法 a.Equals 判断对象是否具有相等的值 b.GetHashCode 返回对象值的哈希码 c.ToString 该方法默认返回类型的完整名称( this.GetType().FullName ) d.GetType 返回从Type派生的一个对象的实例…
最简单的IL程序 .assembly test {} .method void Func() { .entrypoint ldstr "hello world" call void [mscorlib]System.Console::WriteLine(string) ret } 对上面的程序说明如下: .assemble伪指令用来声明程序集,该关键字是必须的 .method伪指令用来申明方法 .entrypoint伪指令用来表示程序的入口函数(方法),一个程序只能有一个入口,且不能放…
托管程序的执行模型大致如下: 编译源代码为程序集(dll或exe文件),程序集包括了记录相关信息的元数据和IL代码 执行程序集文件时,启动CLR,JIT负责把IL编译为本地代码并执行 IL是微软推出的一种面向对象的类似汇编指令集合的中间语言,无论是C#还是VB代码,经过不同的编译器可编译为无差别的IL,或者说单看IL代码是无法分辨出它是来自C#还是VB,IL类似于Java的.Class文件,该文件具有平台无关性,这使得.Net程序具备了像Java那样跨平台的条件. 程序集的组成及编译 程序集就是…