C#3.0-新增加功能浅析(1)

简介:

通过最近的学习,总结了以下一部分C#3.0中新增加的功能,供大家学习,呵呵~~

(1)隐含类型局部变量:

 

1)  var为关键字,可以根据后面的初始化语句自动推断类型;

2)  初始化语句必须为表达式,且编译时可以推断类型;

3)  Var声明的仅限于局部变量,也可以用于foreachusing等语句中;

4)  数组也可以作为隐含类型;

 

(2)扩展方法:

 

扩展方法允许我们在不改变源代码的情况下扩展(即添加)现有类型中的实例方法。

Eg

Public static class Extensions{//类型是什么都可以,但是必须是静态类。

       Public static void Foo(this string s){

       ……

}

}

String s=”aaa”;

s.Foo();//调用了扩展方法Foo();

以前的可以扩展的办法由三种:

继承一个类可以扩展它;用包含(组合)的方法来扩展;用反射的方法来扩展;

扩展方法要点:

本质是将实例方法调用在编译期改变为静态类中的静态方法调用;

注意扩展方法的优先级:现有实例方法优先级最高,其次为最近的namespace下的静态类的静态方法,最后为较远的namespace下的静态类的静态类的静态方法;

扩展方法是一种编译时技术,注意与反射等运行时技术进行区别,并慎重使用。

 

(3)对象与集合初始化器:

Public class Point{

Int x,y;

Public int X{get{return x;}set{x=value;}}

Public int Y{get{return y;}set{y=value;}}

}

Var a=new Point{X=0,Y=1};

相当于:var a=new Point();a.X=0;a.Y=1;

集合初始化器:

List<int> num=new List<int>{0,1,2,3,4};

对象与初始化器要点:

对象初始化器实际上利用了编译器对对象中对外可见的字段和属性进行按序赋值;

集合初始化器会对初始化器中的元素进行按序调用ICollection<T>.Add(T);

注意对象初始化器和集合初始化器中成员的可见性和调用顺序;

对象与集合初始化器同样是一种编译时技术。

 

(4)匿名类型:

可以使用new关键字调用匿名初始化器创建一个匿名类型的对象;

匿名类型直接继承自System.Object;

匿名类型的成员是编译器根据初始化器推断而来的一些读写属性。

 



 本文转自 王祖康 51CTO博客,原文链接:http://blog.51cto.com/wzk89/403741,如需转载请自行联系原作者

相关文章
|
6月前
|
C#
【C#】 如何实现文本框历史记录提示功能
【C#】 如何实现文本框历史记录提示功能
110 0
|
6月前
|
监控 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取每张图像的微秒时间和FrameID功能(C#)
90 0
|
6月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用ForceIP强制修改网口IP功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用ForceIP强制修改网口IP功能(C#)
56 0
|
6月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用Binning像素合并功能(C#)
56 0
|
5天前
|
开发框架 C# iOS开发
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
|
5天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
1月前
|
监控 前端开发 安全
C#一分钟浅谈:文件上传与下载功能实现
【10月更文挑战第2天】在Web应用开发中,文件的上传与下载是常见需求。本文从基础入手,详细讲解如何在C#环境下实现文件上传与下载。首先介绍前端表单设计及后端接收保存方法,使用`&lt;input type=&quot;file&quot;&gt;`与`IFormFile`接口;接着探讨错误处理与优化策略,如安全性验证和路径管理;最后讲解文件下载的基本步骤,包括确定文件位置、设置响应头及发送文件流。此外,还提供了进阶技巧,如并发处理、大文件分块上传及进度监控,帮助开发者构建更健壮的应用系统。
97 15
|
1月前
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
50 8
|
6月前
|
编译器 C# 开发工具
C# 12 中新增的几大功能你都知道吗?
C# 12 中新增的几大功能你都知道吗?
|
1月前
|
物联网 C#
【C#】简单的蓝牙通讯功能实现
【C#】简单的蓝牙通讯功能实现
36 0