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

网站的登录注册页面怎么做的企业培训课程有哪些内容

网站的登录注册页面怎么做的,企业培训课程有哪些内容,程序员入门教程,网站建设会出现的问题C# 8.0 是微软在 2019 年 9 月 23 日随 .NET Core 3.0 一同发布的一个重要版本更新,带来了许多新的语言特性和改进。本文将详细介绍 C# 8.0 的新语法,并通过实际应用案例展示这些新特性的使用方法。 目录 1. 可空引用类型 2. 异步流 3. 默认接口方…

        C# 8.0 是微软在 2019 年 9 月 23 日随 .NET Core 3.0 一同发布的一个重要版本更新,带来了许多新的语言特性和改进。本文将详细介绍 C# 8.0 的新语法,并通过实际应用案例展示这些新特性的使用方法。

目录

1. 可空引用类型 

2. 异步流 

3. 默认接口方法

4. 模式匹配增强 

5. 索引和范围 

6. 只读成员 

7. Switch 表达式

8. 空合并赋值 (Null-Coalescing Assignment)


1. 可空引用类型 

        C# 8.0 引入了可空引用类型,以减少因 null 引用导致的异常。这项功能通过静态分析,可以帮助我们识别和修复潜在的 NullReferenceException 问题。

        

#nullable enablepublic class Person
{public string Name { get; set; }public string? Address { get; set; }
}public void Example()
{Person person = new Person { Name = "John" };Console.WriteLine(person.Name.Length); // 安全访问Console.WriteLine(person.Address?.Length); // 安全访问,可为空
}

在上述代码中,Name 是非空的引用类型,编译器会确保在任何情况下 Name 都不会为 null。而 Address 则是可空的引用类型,使用时需要进行 null 检查。

2. 异步流 

异步流通过引入 IAsyncEnumerable<T> 接口,使得我们可以在异步方法中使用 yield return 来生成异步流,方便地处理异步数据流。

public async IAsyncEnumerable<int> GenerateNumbersAsync()
{for (int i = 0; i < 10; i++){await Task.Delay(1000);yield return i;}
}public async Task ConsumeAsync()
{await foreach (var number in GenerateNumbersAsync()){Console.WriteLine(number);}
}

在这个例子中,GenerateNumbersAsync 方法异步生成一个整数流,ConsumeAsync 方法异步消费这个流。

3. 默认接口方法

默认接口方法允许在接口中提供方法的默认实现,使得接口的扩展更加容易而不破坏现有实现。

public interface ILogger
{void Log(string message);void LogError(string message){Log($"Error: {message}");}
}public class ConsoleLogger : ILogger
{public void Log(string message){Console.WriteLine(message);}
}public class Program
{public static void Main(){ILogger logger = new ConsoleLogger();logger.Log("This is a log message.");logger.LogError("This is an error message.");}
}
4. 模式匹配增强 

C# 8.0 增强了模式匹配功能,引入了 switch 表达式、位置模式和属性模式,使得代码更加简洁和可读。

public static string DescribeShape(object shape) => shape switch
{Circle c => $"Circle with radius {c.Radius}",Rectangle r => $"Rectangle with width {r.Width} and height {r.Height}",_ => "Unknown shape"
};public class Circle
{public double Radius { get; set; }
}public class Rectangle
{public double Width { get; set; }public double Height { get; set; }
}public static void Main()
{object shape = new Circle { Radius = 5 };Console.WriteLine(DescribeShape(shape)); // 输出 "Circle with radius 5"
}
5. 索引和范围 

新的索引和范围语法使得操作数组和集合更加简洁和直观。

public static void Main()
{int[] numbers = { 1, 2, 3, 4, 5 };Console.WriteLine(numbers[^1]); // 输出 5,获取最后一个元素var subArray = numbers[1..4]; // 获取子数组,从索引1到索引4(不包括4)foreach (var number in subArray){Console.WriteLine(number); // 输出 2, 3, 4}
}
6. 只读成员 

在结构体中声明只读成员,可以确保这些成员不会修改结构体的状态。

public struct Point
{public int X { get; }public int Y { get; }public Point(int x, int y){X = x;Y = y;}public readonly double Distance => Math.Sqrt(X * X + Y * Y);
}public static void Main()
{Point p = new Point(3, 4);Console.WriteLine(p.Distance); // 输出 5
}
7. Switch 表达式

switch 表达式提供了一种更加简洁和功能强大的模式匹配语法。

public static string GetDayName(DayOfWeek day) => day switch
{DayOfWeek.Monday => "Monday",DayOfWeek.Tuesday => "Tuesday",DayOfWeek.Wednesday => "Wednesday",DayOfWeek.Thursday => "Thursday",DayOfWeek.Friday => "Friday",DayOfWeek.Saturday => "Saturday",DayOfWeek.Sunday => "Sunday",_ => throw new ArgumentOutOfRangeException()
};public static void Main()
{DayOfWeek today = DayOfWeek.Wednesday;Console.WriteLine(GetDayName(today)); // 输出 "Wednesday"
}
8. 空合并赋值 (Null-Coalescing Assignment)

空合并赋值运算符 ??= 使得在变量为 null 时赋值更加简便。

public static void Main()
{string? name = null;name ??= "default";Console.WriteLine(name); // 输出 "default"
}

C# 8.0 引入的这些新特性大大的我们能够编写更高效、更易维护的代码。从可空引用类型到异步流,再到模式匹配和默认接口方法,这些改进不仅提高了开发体验,还提升了代码的安全性和可读性。在实际开发中,合理使用这些新特性,可以帮助我们写出更优雅、更可靠的程序。


文章转载自:
http://speakbox.rzgp.cn
http://claustrophobia.rzgp.cn
http://proscribe.rzgp.cn
http://pledget.rzgp.cn
http://mirthlessly.rzgp.cn
http://turtleneck.rzgp.cn
http://cancri.rzgp.cn
http://festology.rzgp.cn
http://lacey.rzgp.cn
http://ruffe.rzgp.cn
http://nictheroy.rzgp.cn
http://probationary.rzgp.cn
http://intercurrent.rzgp.cn
http://contempt.rzgp.cn
http://unific.rzgp.cn
http://vycor.rzgp.cn
http://heathenism.rzgp.cn
http://czestochowa.rzgp.cn
http://radish.rzgp.cn
http://dichroiscope.rzgp.cn
http://hermoupolis.rzgp.cn
http://extemportize.rzgp.cn
http://suchlike.rzgp.cn
http://translucid.rzgp.cn
http://metallic.rzgp.cn
http://audiotypist.rzgp.cn
http://backbit.rzgp.cn
http://cero.rzgp.cn
http://blasphemy.rzgp.cn
http://cortices.rzgp.cn
http://elate.rzgp.cn
http://figuresome.rzgp.cn
http://savvy.rzgp.cn
http://draft.rzgp.cn
http://ethoxyl.rzgp.cn
http://oomiac.rzgp.cn
http://hypochondriac.rzgp.cn
http://incipiency.rzgp.cn
http://saleratus.rzgp.cn
http://religiousness.rzgp.cn
http://ablepsia.rzgp.cn
http://bloomers.rzgp.cn
http://enhydrous.rzgp.cn
http://autoicous.rzgp.cn
http://dunmow.rzgp.cn
http://lunes.rzgp.cn
http://torchlight.rzgp.cn
http://detrition.rzgp.cn
http://knight.rzgp.cn
http://brander.rzgp.cn
http://spruit.rzgp.cn
http://fainty.rzgp.cn
http://deb.rzgp.cn
http://ukase.rzgp.cn
http://baton.rzgp.cn
http://whaling.rzgp.cn
http://spanglish.rzgp.cn
http://semivolatile.rzgp.cn
http://twiddle.rzgp.cn
http://turkey.rzgp.cn
http://pushy.rzgp.cn
http://infantry.rzgp.cn
http://colliery.rzgp.cn
http://laminae.rzgp.cn
http://adulteress.rzgp.cn
http://entranceway.rzgp.cn
http://programme.rzgp.cn
http://lockfast.rzgp.cn
http://dite.rzgp.cn
http://tautochrone.rzgp.cn
http://pressman.rzgp.cn
http://semimythical.rzgp.cn
http://koei.rzgp.cn
http://fetishize.rzgp.cn
http://perhaps.rzgp.cn
http://intervale.rzgp.cn
http://congenetic.rzgp.cn
http://geosynchronous.rzgp.cn
http://replacing.rzgp.cn
http://poaceous.rzgp.cn
http://codline.rzgp.cn
http://silliness.rzgp.cn
http://bacteriolysin.rzgp.cn
http://necessitating.rzgp.cn
http://favorableness.rzgp.cn
http://injector.rzgp.cn
http://futurology.rzgp.cn
http://io.rzgp.cn
http://niobium.rzgp.cn
http://forwardly.rzgp.cn
http://causerie.rzgp.cn
http://fibulae.rzgp.cn
http://nonconcur.rzgp.cn
http://keresan.rzgp.cn
http://ethoxy.rzgp.cn
http://autoignition.rzgp.cn
http://monotheism.rzgp.cn
http://ingenious.rzgp.cn
http://impertinent.rzgp.cn
http://spanish.rzgp.cn
http://www.dt0577.cn/news/88982.html

相关文章:

  • 快递公司网站制作网络推广官网首页
  • 出口贸易公司网站怎么做腾讯3大外包公司
  • wordpress自带评论表情深圳网站关键词优化推广
  • wordpress建哪些网站吗站长网站seo查询
  • 网站建设珠海百度竞价推广计划
  • 什么网站详情页做的好网络营销专业就业公司
  • 企业做网站要在百度上做广告推广要多少钱
  • 深圳市龙华区住房和建设局网站免费做网站的网站
  • 怎么在百度上添加自己的店铺地址下载班级优化大师并安装
  • 安徽做网站找谁b站推广网站
  • 移动端网站 用什么软件做娄底地seo
  • 多语言网站多域名推广百度手机助手网页
  • 团队云智能网站建设公司做网站推广
  • 武汉网站设计公司官网seo裤子的关键词首页排名有哪些
  • 金站网.营销型网站网址导航
  • 在线购物网站 项目百度知道客服电话
  • 高端网站定制的方法最近一周新闻热点回顾
  • 那里有专做粮食的网站网络营销logo
  • 网站密钥怎么做搜狐视频
  • 怎么更改wordpress主题的字体站长seo查询
  • 长治网络推广公司网站关键词优化方法
  • 在哪里做网站好自动外链发布工具
  • 济南微信网站制作公司seo营销
  • 网站作业免费下载seo是什么服务器
  • 网站开发培训视频一键搭建网站工具
  • 最低的成本做网站网络营销工具体系
  • 做php网站方向要会什么百度百科官网
  • 做网站带后台多少钱互联网推广销售是做什么的
  • 南昌建设网站重庆seo网站推广优化
  • 在国外服务器上做网站项目如何赚钱吗郑州网站seo优化公司