今天晚上都在搞VS 2005,瞎折腾了半天。发现了几个新的方便特性:
1、如果你的一个类没有写完整的命名空间,也没有引用的时候,编译时出错会自动提示你:(1)就地写完整的命名空间;(2)帮你在文件头添加using引用;
2、如果在解决方案中更改一个类文件的名字,会提示是否更改里面的类名;
3、调试的时候,鼠标移动到变量上会出现这个变量的详细信息,而不是以前那样只有简略的信息了;另外在选择观察之后,观察对象的时也会有字符的智能提示了;
4、测试了一下自带的单元测试,使用方法和NUnit差不多,不过似乎功能更强大,但也更复杂了一些。可以设置单元测试报告模版,也许能够根据模版自动生成测试报告的(Word文档),方便了测试人员们。NUnit也许会在VS 2005正式推出的时候被干掉。(有网友说VS 2005会直接导致一批开源项目的死亡,比如NUnit和NAnt就是首当其冲的。如果真这样的话,其实应该算是.Net阵营的一种严重打击。但NUnit的功能只能算是VS 2005自带强大测试功能模块中的一个小子集了,事实上被微软干掉的可能性很大)
最后我继续专研泛型技术,不过到最后也没研究透彻。我想要达到的效果是通过XML来运行时配置泛型类里面的泛型参数的类型,而不在程序中写死,但是非常遗憾的是我用如下代码是失败的:
System.Type t = System.Type.GetType("System.Int32");
Demo<t> objDemo = new Demo<t>(); //Demo是一个泛型类Class Demo<T>{}
Demo<t> objDemo = new Demo<t>(); //Demo是一个泛型类Class Demo<T>{}
这样写会在编译的时候提示't'在命名空间或类名中无法找到。显然我的猜想是错的,在<>里面的并不是Type类型的值,当然如果用字符串更是不行的。难道就没有一种办法可以实现运行时决定泛型的具体类型的方法吗?和群里面的朋友讨论了下,结论是估计用反射能够做到,不过都还没开始研究C# 2.0,所以谁也说不上个所以然来,唉,郁闷啊。