• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Step By Step-Stone
博客园    首页    新随笔    联系   管理    订阅  订阅

笔记20091202之C#3.0新特性

C#3.0新特性(一定要记住):

1、对象初始化器
User user = new User { Name = “Jerry Stone”, Sex = “Male” }

2、集合初始化器
List<User> users= new List<UserInfo>
{
      new User{ Name = “Jerry Stone”, Sex = “Male” },
      new User{ Name = “Lisa Stone”, Sex = “Female”}
}

3、自动属性
Class User
{
     public string Name{ get; set; }
     public string Sex{ get'; private set; }
}

4、隐式类型变量和隐式类型数组
var i = 100;
var str = “Hello, CnBlog!”
var arr = new[] {“Sam”, "Dean”}
var user = new User { Name = “Jerry”, Sex = “Male”}

PS:隐式类型变量必须初始化,而且值不能为null,或者类型不定的表达式;隐式类型仍为强类型,只是类型的

5、匿名类型
Class User
{
     public string Name{ get; set; }
     public string Sex{ get'; private set; }
}
var user = new { Name = “Lisa”, Sex = “Female”}

PS:对象初始化器中的参数名称、类型和顺序都一致时,这些匿名类型的对象将视为同一类型

6、扩展方法(LINQ实现的基础之一)

扩展方法必须实现为静态方法,只能声明于非泛型或非嵌套的静态类中,并且必须以this关键字作为其第一个参数修饰符。

扩展方法是LINQ实现的最基本条件,LINQ中所有的查询操作符都是由扩展方法来定义的。

7、查询表达式

IEnumerable<User> selectUsers = from user in users
                                                 where user.Sex == “Male”
                                                 select user;

实际将被翻译成:
IEnumerable<User> selectUsers = users.Where(user => user.Sex == “Male”)

8、LINQ

C#3.0在语言方面的新特性,主要是为实现LINQ而做的准备。

posted @ 2009-12-02 23:13  JiaruiStone  阅读(126)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3