博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 5.0
阅读量:5158 次
发布时间:2019-06-13

本文共 1612 字,大约阅读时间需要 5 分钟。

C# 5.0将带来的五大新特性

发表于
2011-05-24 09:13| 8059次阅读| 来源博客园| 70 条评论| 作者周利华
摘要:作者用C# 5.0与之前的版本相做比较,总结出C# 5.0几个的新特性,供大家参考。

导读:作者在写了一篇《》,作者用C# 5.0与之前的版本相做比较,总结出C# 5.0几个的新特性,供大家参考。

第一:绑定运算符,:=:

这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进。

comboBox1.Text :=: textBox1.Text; //将文本框的内容绑定到下拉框。

第二:带参数的泛型构造函数:

这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加入带参数泛型构造函数,则在原有基础上对C#泛型完善了很多。:)

public class T MyClass : T: class, new()

//we might have

public class T MyClass : T:class, new(int)

第三:支持null类型运算:

此功能,个人觉得并非什么大的亮点,但至少对null类型,特别是有数据计算的这种null类型的支持,写代码还是方便不少。

注意对于Nullable Types,在C#2.0就加入进来了,但是不支持计算,比如:

int? x = null;

int? y = x + 40;

那么y值是多少?不支持计算,得到的是null,想必大家知道为什么结果是null了吧?但C#5.0可以,40加一个null的整数,我们要的结果是40,不过份吧?

int x? = null;

int y? = x + 40;

Myobject obj = null;

Myotherobj obj2 = obj.MyProperty ??? new Myotherobj();

第四:case支持表达式:

这个是一个我很早就想如果能这样就好了,没想到在C#5.0里就加入此功能,以前case里只能写一个具体的常量,而现在可以加表达式了,灵活多了。

switch(myobj){

case string.IsNullorEmpty(myotherobj):

//逻辑代码

case myotherobj.Trim().Lower:

//逻辑代码

}

第五:扩展属性。

我们在C#3.0里有扩展方法,那么在C#5.0里将会加入扩展属性的感念,对照扩展方法,不难理解扩展属性的概念了。以下为扩展属性的定义举例:

[Associate(string)]

public static int Zivsoft_ExtensionProperty { get;set;}

C#5.0 远远不只是上面描述的5点新功能,它如同C#4.0加入dynamic概念一样,会加入异步处理概念,这个不是几行代码就能表达,而是将在设计,架构上,又会掀起一次飞跃……

为了大家抢先看,就给一段C#5.0一段简单的异步操作的代码例子,注意(C#5.0两个新加的关键字async, await):

Task<Movie> GetMovieAsync(string title);

Task PlayMovieAsync(Movie movie);

async void GetAndPlayMoviesAsync(string[] titles)

{

foreach (var title in titles)

{

var movie = await GetMovieAsync(title);

await PlayMovieAsync(movie);

}

}

原文链接:

转载于:https://www.cnblogs.com/xiaocandou/p/5049940.html

你可能感兴趣的文章
Springboot2.x整合logback slf4j
查看>>
动态加载、移除css文件
查看>>
自建博客
查看>>
问卷调查
查看>>
MUI使用h5+进行召唤各大APP应用市场调用启动的包名和方式
查看>>
Git的使用和配置小白必看都是干货,为您解惑
查看>>
使用静态函数impl模式做接口
查看>>
SharePoint【学习笔记】-- SharePoint Windows认证模式下 限制人员选取器能访问OU
查看>>
日常(身怀绝技的大家)
查看>>
python之禅
查看>>
C#索引器-索引器与数组属性的比较
查看>>
RFC2616-HTTP1.1-Methods(方法规定部分—译文)
查看>>
【转】 STL中的set容器的一点总结
查看>>
jquery中的$("#id")与document.getElementById("id")的区别
查看>>
JZOJ5771 遨游
查看>>
使用线程池测试cpu的并发计算能力
查看>>
C++Primer第五版——习题答案详解(一)
查看>>
Running an etcd cluster on localhost
查看>>
Android Spinner,下拉菜单的功能和用法
查看>>
Proteus中MATRIX-8X8 LED灯的连接
查看>>