你必须知道的.NET
> [你必须知道的.NET] 开篇有益 (Anytao, 2007-04-06 20:12, 阅读:45621, 评论:77)

> [你必须知道的.NET] 第一回:恩怨情仇:is和as (Anytao, 2007-04-07 16:57, 阅读:43063, 评论:106)

> [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类 (Anytao, 2007-04-12 14:33, 阅读:48190, 评论:217)

> [你必须知道的.NET] 第三回:历史纠葛:特性和属性 (Anytao, 2007-04-19 01:53, 阅读:23934, 评论:65)

> [你必须知道的.NET] 第四回:后来居上:class和struct (Anytao, 2007-04-24 00:23, 阅读:21493, 评论:64)

> [你必须知道的.NET] 第五回:深入浅出关键字---把new说透 (Anytao, 2007-04-28 23:38, 阅读:25550, 评论:91)

> [你必须知道的.NET] 第六回:深入浅出关键字---base和this (Anytao, 2007-05-04 00:31, 阅读:17597, 评论:63)

> [你必须知道的.NET] 第七回:品味类型---从通用类型系统开始 (Anytao, 2007-05-11 00:13, 阅读:15329, 评论:28)

> [你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理 (Anytao, 2007-05-23 01:01, 阅读:27322, 评论:92)

> [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边 (Anytao, 2007-05-28 23:13, 阅读:16361, 评论:58)

> [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途 (Anytao, 2007-06-18 22:36, 阅读:10620, 评论:30)

> [你必须知道的.NET]第十一回:参数之惑---传递的艺术(上) (Anytao, 2007-07-06 16:06, 阅读:12474, 评论:16)

> [你必须知道的.NET]第十二回:参数之惑---传递的艺术(下) (Anytao, 2007-07-06 16:12, 阅读:10221, 评论:42)

> [你必须知道的.NET]第十三回:从Hello, world开始认识IL (Anytao, 2007-07-22 22:11, 阅读:13166, 评论:25)

> [你必须知道的.NET]第十四回:认识IL代码---从开始到现在 (Anytao, 2007-08-22 09:21, 阅读:13327, 评论:23)

> [你必须知道的.NET]第十五回:继承本质论 (Anytao, 2007-09-10 21:43, 阅读:16468, 评论:110)

> [你必须知道的.NET]第十六回:深入浅出关键字---using全接触 (Anytao, 2007-10-01 22:11, 阅读:11309, 评论:40)

> [你必须知道的.NET]第十七回:貌合神离:覆写和重载 (Anytao, 2007-11-07 19:53, 阅读:10116, 评论:41)

> [你必须知道的.NET]第十八回:对象创建始末(上) (Anytao, 2007-12-03 02:31, 阅读:12715, 评论:70)

> [你必须知道的.NET]第十九回:对象创建始末(下) (Anytao, 2007-12-07 08:55, 阅读:10456, 评论:46)

> 返回系列文章首页

阅读排行
· [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类 (48190)
· [你必须知道的.NET] 开篇有益 (45621)
· [你必须知道的.NET] 第一回:恩怨情仇:is和as (43063)
· [你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理 (27322)
· [你必须知道的.NET] 第五回:深入浅出关键字---把new说透 (25550)
· [你必须知道的.NET] 第三回:历史纠葛:特性和属性 (23934)
· [你必须知道的.NET] 第四回:后来居上:class和struct (21493)
· [你必须知道的.NET] 第六回:深入浅出关键字---base和this (17597)
· [你必须知道的.NET]第十五回:继承本质论 (16468)
· [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边 (16361)
· [你必须知道的.NET] 第七回:品味类型---从通用类型系统开始 (15329)
· [你必须知道的.NET]第十四回:认识IL代码---从开始到现在 (13327)
· [你必须知道的.NET]第十三回:从Hello, world开始认识IL (13166)
· [你必须知道的.NET]第十八回:对象创建始末(上) (12715)
· [你必须知道的.NET]第十一回:参数之惑---传递的艺术(上) (12474)
· [你必须知道的.NET]第十六回:深入浅出关键字---using全接触 (11309)
· [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途 (10620)
· [你必须知道的.NET]第十九回:对象创建始末(下) (10456)
· [你必须知道的.NET]第十二回:参数之惑---传递的艺术(下) (10221)
· [你必须知道的.NET]第十七回:貌合神离:覆写和重载 (10116)

最新评论
> Re:[你必须知道的.NET] 开篇有益
难得的知识,学习进步,这个博客园太好了,感激;
- jun126 2016-06-03 16:50

> Re:[你必须知道的.NET] 开篇有益
楼主些的真好,太感谢;
- jun126 2016-06-03 16:46

> Re:[你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
现在还不懂,以后再回来
- 胡先生的博客 2016-04-07 17:36

> Re:[你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理
有点难,不是很理解堆栈
- 胡先生的博客 2016-04-07 17:13

> Re:[你必须知道的.NET] 第四回:后来居上:class和struct
有点概念了,但是还是不知道什么时候该用struct
- 胡先生的博客 2016-03-26 13:21

> Re:[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
@ [quote]  一晚深夜,一个作家闲来无事,忽然兴起,要写本小说。一想好小说的主线路,于是就列好提纲,列好后累了,然后就睡觉去了。所以,就留下了接口,等想起哪天要写时就继续去写。   一晚深夜,一个作家闲来无事,忽然兴起,要写本小说。一想好小说的主线路,于是就列好提纲,列好后精神很好,就继续写了小说上的内容,东写西写,然后就睡觉去了。所以,就留下了抽象类,等想起哪天要写时就继续去写。  [/quote] +1 如果很多类都继承一个普通父类可以省很多代码 省下的代码量为:父类的内容*(子类的数量-1) 继承父类的子类都能调用父类中的方法。 而用抽象类和接口在子类和抽象类中都有方法的申明。应该在别的类需要调用父类下的子类的方法时,使用抽象类才能看到便利吧。 比如 人类 使用 武器.攻击 武器就可以作为抽象类,下属 弓箭.攻击{射箭} 剑.攻击{刺} 在程序运行的时候,人类在这里就不用swich判断使用的武器,直接调用 武器.攻击 就行了。 写完才发现自己都不知道自己说了什么。。。
- 胡先生的博客 2016-03-25 23:25

> Re:[你必须知道的.NET] 第一回:恩怨情仇:is和as
看文章学习了,看评论才明白前辈们的学习态度。 或许我只是一个没追求的打工仔。
- 胡先生的博客 2016-03-25 23:00

> Re:[你必须知道的.NET] 开篇有益
现在.net真的不火了啊,找个专业一点的教程都要找好久呢
- 胡先生的博客 2016-03-25 22:41

> Re:[你必须知道的.NET]第十五回:继承本质论
请问楼主: @”同的类型指针在虚拟方法表中有不同的附加信息作为标志来区别其访问的地址区域,称为offset。不同类型的指针只能在其特定地址区域内进行执行,子类覆盖父类时会保证其访问地址区域的一致性,从而解决了不同的类型访问具有不同的访问权限问题。“,这段话如何理解?是指针类型决定其访问地址区域还是指针指向的对象类型决定其访问地址区域?个人理解应该是指针指向的对象类型决定该指针访问的地址区域,因为父类指针可以访问子类对象的方法和属性;另外一方面,继承里面,虚方法和非虚方法是不是分开两个不同的 方法表管理?
- ismallboy 2015-12-21 09:59

> Re:[你必须知道的.NET]第十五回:继承本质论
"对象的创建过程是按照顺序完成了对整个父类及其本身字段的内存创建,并且字段的存储顺序是由上到下排列"。关于这一点,意思是子类型的实例中,其父类和子类本身的字段是像数组那样挨着依次排列的吗? 但是,"对象一经创建,会首先找到其父类Bird,并为其字段分配存储空间,而Bird也会继续找到其父类Animal,为其分配存储空间,依次类推直到递归结束"。这样的分多次分配空间,就不能保证能够分配到连续的空间了吧?例如考虑多线程的情况,这就很可能发生了。
- BIT祝威 2014-12-28 14:58

> Re:[你必须知道的.NET]第十五回:继承本质论
"类Chicken生成方法列表时,首先将Bird的所有方法拷贝一份,然后和Chicken本身的方法列表做以对比,如果有覆写的虚方法则以子类方法覆盖同名的父类方法,同时添加子类的新方法,从而创建完成Chicken的方法列表" 应该不是将Bird的所有方法拷贝一份吧,应该是所有JIT值为NONE的并且为虚方法的方法拷贝一份吧。。。。。
- 蹦极的馒头 2014-07-08 15:08

> Re:[你必须知道的.NET]第十九回:对象创建始末(下)
@Anytao 实例对象所占的字节总数还要加上对象附加成员所需的字节总数,其中附加成员包括TypeHandle和SyncBlockIndex,共计8字节(在32位CPU平台下)。 [b]请问这只是VipUser实例对象的附加成员,而UserInfo的附加成员对象所需的字节应该计算上吧[/b]。
- tc庄稼汉 2013-12-24 16:28

> Re:[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
今天在家看王老师的书<<你必须知道的.NET第二版>>,在OO大原则中的开放封闭原则中举得银行办理业务那个例子,client.CreateProcess()这个没有看懂,我在Client类中定义了一个ClientType,但是.CreateProcess()这个没有理解怎么做的。
- 紫色的奶牛 2013-11-23 09:16

> Re:[你必须知道的.NET] 第五回:深入浅出关键字---把new说透
1.new一个class对象和new一个struct或者enum有什么不同? new一个Class对象,IL会使用newobj命令来为实例在托管堆中分配内存;二是调用构造函数来实现对象初始化;new一个struct时,new运算符用于调用其带构造函数,完成实例的初始化。 2.new在.NET中有几个用途,除了创建对象实例,还能做什么? 隐藏基类成员 3.new运算符,可以重载吗? 文章没说? 4.范型中,new有什么作用? new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。当泛型类创建类型的新实例时,将此约束应用于类型参数。 5.new一个继承下来的方法和override一个继承方法有何区别? new一个继承下来的方法是隐藏基类成员,而override一个继承下来的方法是重写基类方法。 6.int i和int i = new int()有什么不同? new int() 会给默认值0
- dotnetgeek 2013-11-20 17:09

> Re:[你必须知道的.NET]第十五回:继承本质论
楼主,我想向你请教个问题,Jeffrey Richter 调用虚的实例方法要比调用非虚的实例方法消耗性能,因为JIT会产生一些额外的代码来检查实施调用的变量是否是null。但是他又说调用非虚的实例方法也要检查变量是否为null,那这个性能的差在哪呢,希望楼主给予解答,不胜感激。
- Flx 2013-09-16 09:44

> Re:[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
接口是不能有字段的
- kelly. 2013-05-22 09:41

> Re:[你必须知道的.NET] 第三回:历史纠葛:特性和属性
[AttributeUsageAttribute(AttributeTargets.All, AllowMultiple = true, Inherited = true)] public class MyNewAttribute : System.Attribute { // } ---------------------------------- 啊涛 括号错了 以上正解
- MissLV 2013-03-20 10:57

> Re:[你必须知道的.NET] 第一回:恩怨情仇:is和as
@Anytao [quote]@Done 一个对象能强制转换成它的派生类吗? 答案是:能。否则一个违反Liskov替换原则的面向对象语言,何以面见万千程序开发者的颜面:-) 另外,你提供的代码显然是没有问题的,不知为何编译通不过:-)[/quote] 否则如何实现多肽呢?
- 撬棍 2013-01-16 17:25

> Re:[你必须知道的.NET] 开篇有益
好贴!!
- 沐鈅 2012-11-21 15:36

> Re:[你必须知道的.NET] 第一回:恩怨情仇:is和as
•除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型; 没发现“Parse”方法啊
- Anson Wang 2012-11-13 16:02