几个.NET方面的问题

这几天又拿来《CLR via C#》翻看,想了几个.NET方面的问题,加上在公司和同事们交流时遇到的问题。大家有兴趣可以看看,能不能回答上来呢?

 

1.       为什么要显式地关闭StreamWriter

2.       如何正确地重写GetHashCode方法?(这个是最简单的)

3.       C#编译器为什么要用callvirt指令调用实例的非虚方法?

4.       struct可以继承吗?为什么?可以有虚方法吗?为什么?

5.       什么时候用const,什么时候用static readonly?他们有什么区别?

6.       C#为什么要提供析构函数?或者说什么时候用析构函数比较合理?

7.       有时,程序的Debug Build可以正常运行,而Release Build不能正常运行。一般可能会是什么原因?

 

其中1, 2, 3, 5, 7可以在《CLR via C#》中分析出答案。其它的……大家讨论讨论吧。尤其是第4个问题。可能有人认为这种问题没有意义。语法如此,怎么规定的就怎么用就是了。但是C#或CLR团队这么规定一定会有他们的想法,他们的理由,如果不这样一定有什么问题。

posted on 2009-04-15 22:14  南柯之石  阅读(518)  评论(5编辑  收藏  举报

导航