当前位置: 首页 > news >正文

网站建设价格标准案例动漫制作专业大学排名

网站建设价格标准案例,动漫制作专业大学排名,个人性质的网站备案容易查,六安市城乡和建设局官方网站准备工作#xff1a; Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能#xff0c;但目前也有一些可以试用了。在开始之前#xff0c;需要进行入两项设置#xff1a; 将Framework设置为.net core 3.0 将C#语法设置为8.0 也可以直接编辑.csproj文件#x… 准备工作 Visual Studio 2019 Preview版本中并没有包含所有的C# 8.0的新功能但目前也有一些可以试用了。在开始之前需要进行入两项设置 将Framework设置为.net core 3.0 将C#语法设置为8.0 也可以直接编辑.csproj文件修改TargetFramework和LangVersion为如下形式      TargetFrameworknetcoreapp3.0/TargetFramework     LangVersion8.0/LangVersion   Nullable reference types 空引用对于所有编程者来说相信都是一个非常头痛的问题图灵奖得主Tony Hoare 就把包含空引用的编程语言用定义为一个十亿美元的错误Null References: The Billion Dollar Mistake。 首先还是来一段简单的代码      string s  null;     Console.WriteLine($The first letter of {s} is {s[0]}); 这段代码编译没有问题但运行的时候会抛空引用异常的。 在C# 8.0中开启了空引用异常检测后上述代码在编译器就会检查出告警来。           并且它会结合上下文判断如果该值不会为null则不会告警非常智能。      细心的朋友可能会发现虽然在下面使用的地方没有告警但是变量初始化的地方还是报告警了。如果我们的程序本身就是允许null值改怎么办呢放任告警不管也是不合适的做法。 针对这个问题C#引入了一个新的声明为可空对象的语法      string? s  null; 也就是在类型后加一个?符号表面该对象是一个可空对象。 由于这个行为和之前的C#版本是不一致的因此默认是没有开启这个功能的我们需要在csproj文件中打开这个设置      LangVersion8.0/LangVersion     NullableReferenceTypestrue/NullableReferenceTypes 不知道在后续的VS的版本中会不会直接再界面上添加这一设置。 最后总结一下Nullable reference types主要干了两件事 可以通过对象声明判断该对象是否可能为空。 当可空对象使用在不可空的场景是会报告警。 虽然之前有一些第三方插件也集成了类似的功能如Resharper的Null Check但把这个功能集成到了编译器上后更加简洁好用。 C#的空对象检查在设计期间也有好几种语法方案目前这种方案既解决了问题又对现有代码保持完全兼容还能对现有代码潜在性问题能进行分析是一种比较理想的方案的。如果以后能通过设置将空引用的告警级别可以设置为错误就更好了。   Ranges and indices 范围和索引是C#新引入的语法它主要引入了两个对象Range和Index。 Index 首先还是来看一个简单的例子。      var numbers new[] { 1, 2, 3, 4, 5, 6, 7 };     Index i1 3; // number 3 from beginning      Index i2 ^2; // number 2 from end     Console.WriteLine(${numbers[i1]}, {numbers[i2]}); // 4, 6 这个例子简单的演示了一下Index的用法Index本身还是类似于之前的int索引的它也可以和int类型转换。但Index在int索引的方式扩展了一下支持从后往前访问也就是我们说的倒数位。      Index i2 ^2; // number 2 from end Range 基于Index组成起点和终点可以组成了一个范围Range根据Range可以对数组进行切片。      Range range  Range.Create(i1, i2);     int[] slice  numbers[range];        //4, 5 ..运算符 为了快速表示一个RangeC#还映入了一个新的运算符..如上面的代码就可以简写为      int[] slice  numbers[i1..i2];        //4, 5 ..语法不复杂通过..连接的开头和结尾的索引用来表示一个范围。为了使用方便..运算符的开头和结尾是可以省略的常用的大致就有这几种形式。      string text  hello c# 8.0;     Console.WriteLine(text[..]); //hello c# 8.0     Console.WriteLine(text[^3..]);      //8.0     Console.WriteLine(text[..5]);       //hello     Console.WriteLine(text[6..]);       //c# 8.0 通过..运算符我们描述切片时可以清晰很多例如如下这个常见的求字符串子串的例子      var sub  text.Substring(text.Length - 6, 6);     var sub2  text[^6..];.net 3.0的很多类都内置了对Range的切片操作常见的有 字符串用来子串 Array用来划获取子数组 spanT用来切片   Asynchronous streams 异步流能一种拉的方式进行异步迭代配合async编程可以以异步的方式把socket流像本地文件一样解析相信这是很多用c#写socket程序的程序员所喜欢的一个特性。 一个简单的示例如下      static async IAsyncEnumerablestring GetNamesAsync()     {        await Task.Delay(1000);        yield return hello;        await Task.Delay(1000);        yield return world;     }         await foreach (var name in GetNamesAsync())     {        Console.WriteLine(name);     } 我在Visual Studio 2019 preview中试用这个功能的时候发现无法编译通过。MS解释说这个是VS和.net core代码没有完全匹配上所致我们可以手动添加相关代码以完成这一编译过程。  namespace System.Threading.Tasks {using System.Runtime.CompilerServices;using global::System.Threading.Tasks.Sources;internal struct ManualResetValueTaskSourceLogicTResult{private ManualResetValueTaskSourceCoreTResult _core;public ManualResetValueTaskSourceLogic(IStrongBoxManualResetValueTaskSourceLogicTResult parent) : this() { }public short Version _core.Version;public TResult GetResult(short token) _core.GetResult(token);public ValueTaskSourceStatus GetStatus(short token) _core.GetStatus(token);public void OnCompleted(Actionobject continuation, object state, short token, ValueTaskSourceOnCompletedFlags flags) _core.OnCompleted(continuation, state, token, flags);public void Reset() _core.Reset();public void SetResult(TResult result) _core.SetResult(result);public void SetException(Exception error) _core.SetException(error);} }namespace System.Runtime.CompilerServices {internal interface IStrongBoxT { ref T Value { get; } } } View Code   其他语法 本身C# 8.0是还有几个其它语法的如接口默认方法高级模式匹配等。这些语法在目前的VS 2019 preview中还无法体验。估计后续会慢慢放开的到时候我再写相关文章介绍它们。 相关文章 https://blogs.msdn.microsoft.com/dotnet/2018/12/05/take-c-8-0-for-a-spin/   转载于:https://www.cnblogs.com/TianFang/p/10076992.html
http://www.huolong8.cn/news/104237/

相关文章:

  • 东营网站建设哪家好阿迪达斯网站建设的总体目标
  • 邢台专业网站建设推荐wordpress 限时 插件
  • 三元桥做网站的公司网站设置方案
  • 视频网站自己做服务器无锡网站制作哪家有名
  • 网站建设技能描述浙江华企做网站
  • 西部数码网站管理控制面板wordpress媒体库里文件
  • 做装修效果图的网站有哪些软件四川建筑职业学校官网教务网
  • 泰安网站建设制作服务北京市网站建设
  • 5118网站如何使用免费版广东省建设工程造价管理协会网站
  • wordpress主题grace7国外网站搜索引擎优化方案
  • 伊春北京网站建设宁波白云医院网站建设
  • 网站建站素材wordpress 移动顶部菜单
  • 广东网站开发建设网站空间备案要多久
  • 商城网站建设效果如何在手机上制作游戏
  • 杭州网站建设路电影网站建设
  • 互联网站备案登记表深圳网络优化
  • 好看的企业网站首页上海市网站开发公司排名
  • 网站有域名没备案河北邯郸网络科技公司有哪些
  • 内蒙古城乡住房建设厅网站创意设计图片
  • 做男性服装的网站营销策划方案100例
  • 如何在服务器建设iis网站wordpress 图片地址 数据库
  • 山西省建设工程招投标监督网站随州网站建设外包公司
  • 网站制作邯郸建设银行网站怎么看不见余额
  • 网站搭建的人省级网站 开发建设 资质
  • 建立大型网站吗网站建设整体方案
  • 二级域名可以做淘客网站网站建设实施方案ppt
  • 阜阳建设网站网站建设总体框架
  • 杭州网站制作专业怎么做网站卡盟
  • 清远专业网站建设便宜机票的网站建设
  • 营销网站方案设计php开发