共 9 页: 上一页 1 2 3 4 5 6 7 下一页 末页
摘要:一.子类和父类方法之间的关系1.当子类和父类有方法完全相同的方法namespace ConsoleApplication2{ class Program { static void Main(string[] args) { B b = ... 阅读全文
posted @ 2013-01-08 17:55 Rt-张雪飞 阅读 (1571) 评论 (0) 编辑
摘要:——老赵微博对与ref和out的区别,我相信很多人都知道,这里我简单罗列下:1.首先ref和out两种类型的参数都是可以将方法内对参数的修改传递到方法外面2.ref参数需要在传递之前初始化,out不需要,out参数在返回时必须赋值3.在CLR角度看ref和out没什么区别,但是C#编译器采取不同的方... 阅读全文
posted @ 2012-11-23 00:36 Rt-张雪飞 阅读 (3449) 评论 (16) 编辑
摘要:定义一个事件成员,表示该类型提供了如下功能: 1.能够在事件中注册方法 2.能够在事件中注销方法 3.当事件发生时,注册的方法会被通知 (事件内部维护了一个注册方法列表) CLR的事件模型是基于委托的,它可以通过类型安全的方式调用回调方法。而回调方法是订阅事件的对象接收通知的方式。通过一个例子来说明 阅读全文
posted @ 2012-11-14 22:31 Rt-张雪飞 阅读 (18158) 评论 (3) 编辑
摘要:上周收到汤姆大叔的赠书《JavaScript编程精解》(顺风快递哦,大叔果然给力),迫不及待浏览了下,首先看到是各种对该书原著的赞誉,非常期待接下来的阅读体验。读完第一章,已经非常吸引我持续读下去。因为书里的内容很对我的胃口——简明扼要,把握细节。 这里我把自己觉得很细节,很重要的部分记录下来,以方... 阅读全文
posted @ 2012-11-02 18:30 Rt-张雪飞 阅读 (3234) 评论 (8) 编辑
摘要:运算符重载方法一 些编程语言允许定义运算符如果操作类型的实例,例如System.String,System.Decimal,和System.DateTime,它们 重载了==和!=运算符。但是对于CLR来说,它是完全不知道像“==”和“!=”这些运算符是干什么的。编程语言定义了每一种运算符的意义以及当这些运 算符的符号出现时应该生成什么样的代码。例如C#里面,数值类型的当遇到“+”这个符号时,在编译时会生成将两个number加起来的代码,如果是 String类型遇到,则会将两个字符串拼接起来。CLR指定运算符重载方法必须是public和static,并且C#要求运算符方法的参数中至少有一个参数 阅读全文
posted @ 2012-10-20 20:53 Rt-张雪飞 阅读 (2024) 评论 (0) 编辑
摘要:类型构造器也称为静态构造器,类构造器,或类型初始化器类型构造器可以用于接口(C#不允许这样做),引用类型,值类型。实例构造器用来设置一个类型某个实例的初始化状态,类型构造器用来设置一个类型的初始化状态。默认情况下,类型没有定义类型构造器。下面展示如何定义值类型和引用类型的构造器:internal sealed class SomeRefType { static SomeRefType() { } } internal struct SomeValType { static SomeValType() { ... 阅读全文
posted @ 2012-09-18 17:46 Rt-张雪飞 阅读 (3948) 评论 (8) 编辑
摘要:this用法如下:1.使用this来显示地标识字段的所有者(有点官方味道,看下例子就清楚了)class Student{ public string FirstName; public string LastName; public int Scroe; public void SetName(string firstName,string lastName) { this.FirstName=firstName; this.LastName=lastName; }}2.使用this来传递当前正在执行的对象的一个引用class... 阅读全文
posted @ 2012-09-13 17:01 Rt-张雪飞 阅读 (275) 评论 (0) 编辑
摘要:const:表示常量,变量的值是绝不会被改变的,常量的值是在编译时就已经确定了。编译器会把常量的值保存在程序集的元素据里面,在C#里面,下面列举的简单类型才能被定义为 常量:Boolean, Char, Byte, SByte, Int16, UInt16 , Int32, UInt32 , Int64, UInt64 , Single , Double , Decimal, String。如果定一个引用类型为常量,则必须把该变量的值设为null。因为常量的值是不会改变的,所以常量也常常被认为是定义的类型的一部分。换句话说,常量通常也是静态的。当定义一个常量符号,编译器会在程序集的元素据里面查 阅读全文
posted @ 2012-08-31 17:39 Rt-张雪飞 阅读 (2328) 评论 (3) 编辑
摘要:引用类型与值类型在FCL里面的大多数类型是引用类型,引用类型从托管堆上分配内存,值类型分配在线程栈里。new运算符返回对象的内存地址——指向对象的二进制位,使用引用类型时需要清楚下面几点:1.从托管堆上分配内存 2.每一个堆上的对象都有额外的成员需要初始化 3.在对象里的其他字节通常置为0 4.从堆分配的对象会导致GC的出现值类型有装箱和拆箱两种呈现形式,引用类型始终是装箱的形式。值类型从System.ValueType派生,这个类型提供了跟System.Object里面定义的相同的方法。并且,System.ValueType重写了Equals方法,当两个对象的值相等时返回true,另外Sys 阅读全文
posted @ 2012-08-23 18:07 Rt-张雪飞 阅读 (1668) 评论 (4) 编辑
摘要:CLR要求对象必须使用new运算符创建,在使用new运算符创建一个对象时具体都做了些什么呢?1.计算所有定义的实例字段,所有的基类型包括System.Object需要分配的字节数。每一个堆上的对象还需要两个额外的成员:类型对象指针 和同步块索引,CLR使用它们来管理对象。它们两个需要的字节数算在对象的大小里面。2.从托管堆分配对象需要的字节数(也就是给对象分配内存)。所有的字节置为03.初始化类型对象指针 和同步块索引4.调用实例构造器。大多数编译器自动生成调用基类构造器的代码。最终会调用Sytem.Object的构造器,这个构造器方法什么也不做,只是return。在new执行完上面的操作以后 阅读全文
posted @ 2012-07-24 18:04 Rt-张雪飞 阅读 (1796) 评论 (3) 编辑
共 9 页: 上一页 1 2 3 4 5 6 7 下一页 末页