CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

.net Core(学到了吗).net core 3.1框架,.NET Core 3 Preview 2新功能概览,

1..NET Core 3.1

自从微软宣布.NET Core 3一来,我就一直期待着它早日发布最近几天.NET Core 3 的第二个预览版也放出来了,由于是预览版,暂时还不能用于生产环境,所以我也就不找下载连接了不过新功能还是要看一看的,免得到时候正式版出来一脸懵逼。

2..net core 3.0

C# 8其中最亮眼的自然是C#了,作为.NET平台的亲儿子,C#的发展也一直受到各种关注本次C# 8也到来了,自然各种新功能和好吃的语法糖是少不了的第一个新语法是using声明原来使用C#自动管理资源的时候,必须using语句,然后在大括号语句块内进行操作,using作用域结束后使用的资源会自动释放。

3.ASP.NET Core 3 框架揭秘

在Java等语言中也有类似做法 static void Main() { var filename = “Program.cs”; var line = string.Empty; var magicString = “magicString”; var file = new FileInfo(filename); // using作用域结束后reader自动释放 using (var reader = file.OpenText()) { while ((line = reader.ReadLine()) != null) { if (line.Contains(magicString)) { WriteLine(“Found string”); return; } } WriteLine(“String not found”); } }

4..net core3.1性能

现在使用using声明可以省去大括号作用域,让代码块减少一层缩进,也能让你少打一对大括号using声明的资源在作用域结束后会自动释放 static void Main() { var filename = “Program.cs”; var line = string.Empty; var magicString = “magicString”; var file = new FileInfo(filename); // 改用using声明 using var reader = file.OpenText(); while ((line = reader.ReadLine()) != null) { if (line.Contains(magicString)) { WriteLine(“Found string”); return; } } WriteLine(“String not found”); } // reader会在作用域结束后自动释放 。

5..net core 3.1教程

第二个新语法是switch表达式C# 7引入了is表达式和switch语句的模式匹配,现在C# 8引入了switch表达式,同样也支持模式匹配这个语法比较奇怪,所以大家第一次看到的时候可能不适应,不过这就和lambda表达式一样,一旦习惯了,用起来就很舒服了。

6..net core 3.0教程

简单来说switch表达式是一个表达式,所以它的结果是一个值,而且它是一个中缀表达式,所以左边和右边都有操作数switch表达式左边的操作数是要测试条件的对象,右边则是大括号包裹的,以逗号分隔的匹配列表。

7..net core 3.1和.net5

说起来有点麻烦,直接看官方的例子好了static string Display(object o) => o switch { Point { X: 0, Y: 0 } => “origin”, Point { X: var x, Y: var y } => $”({x}, {y})”, _ => “unknown” };

8..net core 3.1 winform

首先这是一个函数,使用了之前C#新增的语法,表达式体函数,如果一个函数直接返回一个表达式,那么就可以用箭头=>直接替换原来的方法体重点在于第一个箭头后面的switch,这是一个switch表达式,o就是要测试的值,switch右面的花括号里面就是匹配列表,如果o的值是(0,0)的点,就返回”origin”字符串;如果是一个普通的点,就打印该点的坐标;如果是其他情况,就返回”unknown”,这里的下划线_相当于switch语句的default。

9..net core基础

如果你理解了这个例子,官方有给了一个更加复杂的例子,这次还带了元组解构的语法可以看到,如果没有switch表达式以及模式匹配,要实现相同的功能很明显需要很多冗长的代码static State ChangeState(State current, Transition transition, bool hasKey) => (current, transition) switch { (Opened, Close) => Closed, (Closed, Open) => Opened, (Closed, Lock) when hasKey => Locked, (Locked, Unlock) when hasKey => Closed, _ => throw new InvalidOperationException($”Invalid transition”) }; 。

10..net core 入门

接下来一个比较重要的改进是异步流不过官方没有多提,估计等到比较稳定的时候会详细介绍IEEE浮点数改进浮点数系统也根据IEEE 754-2008修订版进行了改进以遵循规定还增加了一下一些数学API:BitIncrement/BitDecrement

MaxMagnitude/MinMagnitudeILogBScaleBLog2FusedMultiplyAddCopySign内置JSON Writer和Json Document现在.NET Core内置了JSON Writer和Json Document类,方便大家使用。

该类按照官方博客称比Json.NET快30%-80%,不过由于内置的JSON类偏底层一些,平时大家用的肯定还是Json.NET,不过如果你想自己做一些功能,就可以利用官方的底层类来实现下面是官方的一个实例:

static int WriteJson(IBufferWriter output, long[] extraData) { var json = new Utf8JsonWriter(output, state: default); json.WriteStartObject(); json.WriteNumber(“age”, 15, escape: false); json.WriteString(“date”, DateTime.Now); json.WriteString(“first”, “John”); json.WriteString(“last”, “Smith”); json.WriteStartArray(“phoneNumbers”, escape: false); json.WriteStringValue(“425-000-1212”, escape: false); json.WriteStringValue(“425-000-1213”); json.WriteEndArray(); json.WriteStartObject(“address”); json.WriteString(“street”, “1 Microsoft Way”); json.WriteString(“city”, “Redmond”); json.WriteNumber(“zip”, 98052); json.WriteEndObject(); json.WriteStartArray(“ExtraArray”); for (var i = 0; i < extraData.Length; i++) { json.WriteNumberValue(extraData[i]); } json.WriteEndArray(); json.WriteEndObject(); json.Flush(isFinalBlock: true); return (int)json.BytesWritten; }

此外还对WPF与WinForms、Windows Native互操作等等进行了支持和改进,这里就不一一介绍了。相信再过不久,.NET Core 3就能正式和大家见面了。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容