现在还是和做网站么,营销团队公司,店铺运营思路,如何做 行业社交类网站.NET 10 首个预览版已经在前两天发布#xff0c;该版本在 .NET Runtime、SDK、libraries、C#、ASP.NET Core、Blazor 和 .NET MAUI 等多个方面都有重大改进和增强。其中C# 14 预览版也伴随着.NET 10预览版一起发布了#xff0c;今天就和大家一起体验一下.NET 10 和 C# 14 。 ….NET 10 首个预览版已经在前两天发布该版本在 .NET Runtime、SDK、libraries、C#、ASP.NET Core、Blazor 和 .NET MAUI 等多个方面都有重大改进和增强。其中C# 14 预览版也伴随着.NET 10预览版一起发布了今天就和大家一起体验一下.NET 10 和 C# 14 。 01、安装
首先需要下载.NET 10.0.0-preview.1版本SDK然后直接安装即可。 安装完成后可以通过dotnet --list-sdks指令查看是否已成功安装.NET 10 review 1。 除此之外还可以通过更新IDE Visual Studio 2022至最新版本。
02、创建.NET 10 类库
下面我们就来在 Visual Studio 2022 中体验.NET 10 。
但是当我们创建.NET 10类库时却发现框架列表中并没有.NET 10 选项如下图。 这是因为Visual Studio默认不可以使用预览版的SDK。因此我们先要在IDE中开启使用预览版SDK功能具体开启方法如下
首先选中菜单中的工具然后点开选项对话框在环境列表中找到预览功能找到使用.NET SDK预览版复选框并选中最后点击确认即可。记得需要重启Visual Studio。 我们再次创建.NET 10 类库此时发现框架列表中已经可以选择.NET 10选项了如下图 03、开启C# 14预览版
在.NET 10 预览版 1 中也跟随着发布了C# 14 预览版。但是要想使用C# 14预览版功能也是需要做一些设置的。
我们可以先选中上节创建的NET10类库然后右键鼠标选择属性找到生成中的高级选项可以发现当前语言版本还是C# 13 ,如下图。 因此我们需要选择类库右键鼠标选择编辑项目文件在PropertyGroup中添加preview节点如下图。 此时我们将可以使用C# 14 预览版功能了。
04、C# 14功能体验
1.field关键字
该关键字主要作用是在编写属性访问器时不需要额外显示编写一个后备字段。
下面我们看下新老版本中编写一个属性访问器的差异代码如下
//老版本写法
private string _msg;
public string MessageOld
{get _msg;set _msg value;
}
//新版本写法
public string MessageNew
{get;set field value;
}field关键字不单单是让我们少写一个后备字段使得代码更简洁同时也使得代码更安全防止了因为不小心导致其他属性方法错误使用后备字段。
其实该关键字在C# 13预览版就已经有了但是最终并包含进C# 13正式版本中我个人还是很期待它可以进入C# 14 正式版本中的。
2.nameof表达式支持未绑定的泛型类型
在新的语法中nameof表达式的参数可以是未绑定的泛型类型如List则结果为“List”,示例代码如下
var result nameof(List);
Console.WriteLine($nameof(List) 结果为{result});而在老的语法中并不支持这样写否则会报错。
3.Span隐式转换
在C# 14中对System.Span 和 System.ReadOnlySpan类型的支持进一步加强添加了一些新的隐式转换进而使得你在使用这些类型时更加方便自然即获得了代码的性能同时还不牺牲代码的安全性。
下面我们就通过代码演示在C# 14中int数组隐式转为Span和ReadOnlySpan以及Span隐式转换ReadOnlySpan代码如下
public static class SpanExtensions
{public static void HandleSpanT(this SpanT span){}public static void HandleReadOnlySpanT(this ReadOnlySpanT span){}
}
static class Program
{static void Main(){var array new int[4] { 5, 6, 7, 8 };//直接调用拓展方法int数组隐式转换为Spanintarray.HandleSpan();//直接调用拓展方法int数组隐式转换为ReadOnlySpanintarray.HandleReadOnlySpan(); Spanint span array;//直接调用拓展方法Spanint隐式转换为ReadOnlySpanintspan.HandleReadOnlySpan();}
}C# 14还有一些其他更新后续我们将继续讲解。
注测试方法代码以及示例源码都已经上传至代码库有兴趣的可以看看。https://gitee.com/hugogoos/Planner