qq魔法花园园升级

我关于.NET技术的Blog
VS2008RTM发布后,经过10多个小时的下载,和3个小时左右的***。终于体验上VS2008。由此产生了一些疑惑:
1,升级还是兼容?
之前比较担心的一个问题就是和VS2005的兼容问题,在下载***之前还询问过已经***了的朋友,被告知可以打开VS2005的解决方案。
结果,还是像以前那样对VS2005的项目文件和sln文件进行升级,不过项目文件升级后的格式和VS2005的还是兼容的。
VS2005的项目文件是这样开头:Project DefaultTargets="Build" xml ="
VS2008的项目文件则是:Project DefaultTargets="Build" xml ="
ToolsVersion="3.5",另外在PropertyGrou gt;中添加了如下节点:
FileUpgradeFlag gt;
/FileUpgradeFlag gt;
OldToolsVersio gt;2.0/OldToolsVersio gt;
UpgradeBackupLocatio gt;
/UpgradeBackupLocatio gt;
这样的话,对于既使用VS2005又使用VS2008的团队,只有建立两个sln文件分别用于不同版本的VS。
如果VS2008对VS2008老项目不是用升级的方式,而是用兼容打开的方式,那么就无需这样麻烦了。
2,我的VS2005项目升级后,在用C# 3.0?
我把我的一个VS2005解决方案升级打开后,.NET Framework的版本没有改变,依旧是2.0
但是在为类添加属性的时候发现一个有趣的问题:平时添加属性,我都是用prog这个Code Sni et ,结果:
出现自动生成如下的代码:
public int MyProperty { get; set; }
晕!这可是C# 3.0中的Auto-Implemented Properties特性(自动实现属性,这个特性其实很好的)。
赶快F6看看,结果能编译通过,看来虽然目标框架用的是.NET 2.0,但是编译器却用的C# 3.0。由此我得出一下的推论:
VS2008的多定向Multi-Targeting只是在编译器级别的一个特性,在VS IDE中只是根据不同框架,引用适合的程序集;使用同一个C# 3.0的编译器来编译。
(不知道我的推论对不对)。
后来发现这个Auto-Implemented Properties特性还需要进一步加强,比如像下面这样写就不能编译通过:
public int Age
if (value150) Throw new Exception("Age is not real")
非要写成完整的属性语法。难道就不能实现一个“部分自动实现属性”(Partial-Auto-Implemented Properties)吗?
(后续疑问持续更新中……)
绿色通道:
posted on 2007-11-26 11:43
阅读(5883)
2007-11-26 12:26 恩
慢慢开始习惯新工具
下个版本会是?
反正不要是2009就好,累阿
  2007-11-26 12:28 比较得十分细致呀。
public int MyProperty { get; set; }
其实就是一种简写方式,编译器自动会把代码补全的。比如在2005里就对写属性进行了简化。直接输入prop然后按Tab键就就可以得到一个框架了。现在只不过更简单了。
你的第二种写法
public int Age
if (value150) Throw new Exception("Age is not real")
确实太为难编译器了。你使用默认的“get;”实际上是get{age = value}.说明应该有一个局部变量int age;
这说明这个age在set{}中也要用到。但是你使用简写的get;没有声明int age;在set中有矛盾了。
2007-11-26 13:08 @旻
编译器在编译的时候,自动生成了一个匿名本地变量。
我所期望的第二种写法,只是希望在get的时候它自动return这个匿名本地变量
在set中,value是本来就存在的,可以不涉及这个匿名本地变量。
  2007-11-26 14:12 public int MyProperty { get; set; }
这种方式不太好,会让人养成不好的编程习惯
  2007-11-26 14:23 @C#学习路
不好的编程习惯指的是...?
  2007-11-26 14:43
我倒觉得会让人习惯使用属性,而不是变量这种好习惯。
  2007-11-26 19:24 2,我的VS2005项目升级后,在用C# 3.0?
这个问题 好象有看过,在装新的vs2008之前如果有装framework3.5好象要先卸掉
具体的我也没记 你可以查下
  2007-11-26 20:07 看了 开心 写的一篇文章,其实。net3.0就是。net2.0的 ,根本就不是什么新版本。具体的可以参见 博客堂的 开心就好 的文章
  2007-11-26 20:59 自动属性的功能有很大限制的,比如get和set必须同时存在,这时ByDesign的。
可以考虑先看一下VS2008的相关资料再上手。
  2007-11-26 21:24 我们公司现在在用VS 2005 + Ext做WPF项目(其中也有大量的.NET 2.0类),现在出VS2008了,就想知道2005的项目在2008中编译以后是不是还是一切正常...
2007-11-26 21:43 @Muse
编译后不会有问题。但是你们要处理好VS2005和VS2008的协作问题。
@Boler Gue
我知道是ByDesign的,但是希望能更进一步支持部分自动实现属性
我的情况不是你说想象的情况。我是全新***的VS2008和.NET 3.5
  2007-11-26 23:50 Multi-Targeting针对的是引用的程序集,至于纯粹的编译器活儿则是无关的。
  2007-11-27 13:11 竟然装了3个小时???太厉害了楼主!
  2007-11-27 14:39
最近在网上流传的Visual Studio 2008 可能不是最终版本
根据2005的经验,自带的SQL Server Expre 应该是2008 Edtion而不是目前的2005 Edtion。
所以目前发布的所谓RTM
Edtion!应该不是最终的版本!
  2007-11-27 23:33
为什么发广告呀
  2007-11-29 12:00 @PINTL
RTM就是RTM,至于流传的是不是正确的RTM我就不知道了。至于SQL2008恐怕还要等一等。
  注册用户登录后才能发表评论,请
最新IT新闻
最新知识库文章
简洁版式:
网站导航:
朱永光
热衷本地技术社区活动
InfoQ中文站.NET社区首席编辑
环境保护实践者和创业者
专注碳足迹等LCA应用
Xbox &am Zune
昵称:
园龄:
粉丝:
关注:
搜索 常用链接
我参与的团队
随笔分类
随笔档案
文章分类
.NET技术
最新评论
楼主你好,请问成都活动的信息一般在哪儿公布?
--崔鹏飞
前两天消费电子展了个Kinect,找发调查问卷的MM商量下等展完了直接便宜点卖我得了,省得往回运,结果说在大陆不能销售,所以不能卖我...
--sun8134
--helloworld2
NumPy和SciPy已经移值完成了?!
太好了!我用的时候还没有移值完成。。。谢谢你
--白途思
引用redmoon:我是通过邮件的连接进去获得的注册文件,文件名为:Gra ho erDeveloper.lic< r> lt r文件里面的内容为(你可以自己创建一个文本文件...
--arobot
阅读排行榜
评论排行榜
Powered by:
Copyright redmoon信息提示
您的同一ip请求过于频繁,如果希望继续访问,请输入验证码:
Copyright 1998 – 2010 Tencent. All Rights Reserved.信息提示
您的同一ip请求过于频繁,如果希望继续访问,请输入验证码:
Copyright 1998 – 2010 Tencent. All Rights Reserved.

参考资料