vs2008新特性

 
vs2008新特性
  首先看一下IDE方面的改进:
1) javac script  html  css  智能感知,这个功能还是比较期待的
2) javascript 调试功能
3)html编辑器在源 文件和设计的 基础增加 split查看方式,这样就可以边改源文件边查看效果了
4)智能感知方面,在可选列表可见状态下按下Ctrl键,可以使列表透明,以查看被遮盖的部分,松开Ctrl后继续进行选择。
5)在创建项目之前,可以选择.net  framework  的版本。这样,在 使用vs  2008  强大IDE  的同时,可以创建  .基于net  fx2.0  或  .net  fx  3.0  的项目,而不用切换到 vs2005下面。 

重要的还是 语言特性方面的改进:
1)扩展方法:
          扩展方法允许 编程人员在 静态类上 编写自己的方法,以扩充静态类的功能。
          比如我们可以写这样一个方法:
          public  static  bool  IsPrime( this  int  integer)
          {
                      if(integer  ==  1)
                        {
                                      return  false;
                        }
                        for(int  2;i  <=  Math.Sqrt(integer);  i++)
                        {
                                        if(integer  ==  0)
                                                      return  false; 
                          }
                          return  true;
            }
之后就可以这么写:
            int  1798517;
            if(i.IsPrime())
            {
                            Cons ole.WriteLine(i);
           

注意  static  和  this    关键字。这样做可以使程序更符合人的思维,更接近自然语言。看我们现在是怎么做的:
定义一个MyUtils类:
Class  MyUtils
{
              public  bool  IsPrime(int  integer)
              {
                      if(integer  ==  1)
                        {
                                      return  false;
                        }
                        for(int  2;i  <=  Math.Sqrt(integer);  i++)
                        {
                                        if(integer  ==  0)
                                                      return  false; 
                        }
                          return  true;
            }
}
使用:
MyUtil  mu  new  MyUtil();
bool  flag  mu.IsPrime(12517)
if(flag)
{
  ......
}
2)  lambda表达式
.net  2.0  引进了匿名方法,.net  3.5进一步引进了lambda表达式来简化。
lambda表达式允许这样写:
IEnumerable  <Book>  cheapBooks  books.where(b  =>  b.Price  <=50)
(where  关键字是下面要提到的Linq中提供的功能)
相应的匿名方法:
IEnumerable  <Book>  cheapBooks  books.where(
                                                                                                                                  delegate(Book  b)
                                                                                                                                  {
                                                                                                                                                  return  b.Price  <=50;
                                                                                                                                }
                                                                                                                                );
3)Linq  语言集成 查询(Language  Integrated  Query)
.net  3.5中增加了很多查询关键字,这样就可以直接编写查询,而不用再写sql 语句。例如:
                  var  cheapBooks  f rom  book  in  books
                                                                  orderby  book.Price 
                                                                  select  book.Name,  book.Author,book.Price
                                                                  where  book.Price  <=  50
books可以使一个 数组,可以使一个集合,可以是XML文件也可以是 数据库里的一个表
4)自动属性
自动属性允许编程人员在定义一个类时作如下简化:
public  class  Book
{
                public  string  Name{  getset;  }
                public  string  Author{  get;  set;               
                public  int        Price{  get;  set;  }
}
当然也可以没有set,如果属性是只读的话。这样就免去了定义私有的  _ name_author,  _price及get  set方法体, 编译器会自动 生成相应的私有变量和方法体。
5)对象初始化器,集合初始化器
在2.0中,我们这初始化一个对象;
Book  book  new  Book();
book.Name  "C#  in  nutshell";
book.Author  "Peter  Drayton";
book.Price  30;
3.5中我们可以这么写:
Book  book  new  Book
{
                Name  "C#  in  nutshell",  Author  "Peter  Drayton",Price  30;
}
集合初始化器允许我们 批量 添加对象,而不用一条一条的用add方法添加:
List<Book>  books  new  List<book>
{
                new  Book{Name  "C#  in  nutshell",  Author  "Peter  Drayton",Price  30;};
                new  Book{Name  " Ajax  in  nutshell",  Author  "Peter  Drayton",Price  40;};
                  new  Book{Name  "Python  in  nutshell",  Author  "Peter  Drayton",Price  50;};
};
6)隐式本地变量
3.5中引入了var关键字,允许 开发者在定义变量时不指定类型:
var    15;
var  new  string[]  {"a","b","c","d"}
但是c#仍然是强类型的,只不过编译器是根据后面所赋的值来推断出变量的类型,因此赋值是必须的,且只能有一种类型,定义后也就不能再进行改变,它在Linq  中非常有用,能极大地简化 代码
7)匿名变量
var  new  []  {"a","b","c","d"}
var  new  {Name    " xml",  Author  "aa",Price  50};
C#  编译器会自动生成一个完整的匿名类包括私有字段,属性,get  set,还有最后的赋值语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值