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

前端网站设计淮北市建设安全监督站网站

前端网站设计,淮北市建设安全监督站网站,合肥seo搜索优化,wordpress模板 淘宝客一#xff64;C#7.0及之前is的使用 is操作符检查表达式的结果是否与给定类型兼容#xff0c;或者(从c# 7.0开始)根据模式测试表达式。有关类型测试is操作符的信息#xff0c;请参阅类型测试和类型转换操作符文章的is操作符部分。 1#xff64;is 模式匹配 从C#xff0…一C#7.0及之前is的使用 is操作符检查表达式的结果是否与给定类型兼容或者(从c# 7.0开始)根据模式测试表达式。有关类型测试is操作符的信息请参阅类型测试和类型转换操作符文章的is操作符部分。 1is 模式匹配 从C7.0开始is和switch语句支持模式匹配。该is关键字支持以下模式 Type模式它测试表达式是否可以转换为指定的类型如果可以则将其强制转换为该类型的变量。 (Constant)常量模式用于测试表达式是否求值为指定的常量值。 var模式匹配成功并且将表达式的值绑定到新的局部变量的匹配。 从C7.1开始expr可能具有由通用类型参数及其约束定义的编译时类型。 如果expr是true并且is与if语句一起使用则varname仅在if语句内分配。varname的范围是从is表达式到包含if语句的块末尾。在其他任何位置使用varname会导致使用尚未分配的变量时产生编译时错误。 1) Type模式 使用类型模式执行模式匹配时is测试表达式是否可以转换为指定的类型如果可以将其强制转换为该类型的变量。这是对is语句的直接扩展可以实现简洁的类型评估和转换。is类型模式的一般形式是 expr is type varname 下面的示例使用is类型模式提供类型的IComparable.CompareToObject方法的实现。 using System;public class Employee : IComparable {public String Name { get; set; }public int Id { get; set; }public int CompareTo(Object o){if (o is Employee e){return Name.CompareTo(e.Name);}throw new ArgumentException(o is not an Employee object.);} } 2) (Constant)常量模式 使用常量模式执行模式匹配时is测试表达式是否等于指定的常量。在C6和更早版本中switch语句支持常量模式。从C7.0开始该is语句也支持它。其语法为 expr is constant 以下示例将类型和常量模式组合在一起以测试对象是否为Dice实例如果是则确定掷骰的值是否为6。 using System; public class Dice {Random rnd new Random();public Dice(){}public int Roll(){return rnd.Next(1, 7); } } class Program {static void Main(string[] args){var d1 new Dice();ShowValue(d1);}private static void ShowValue(object o){const int HIGH_ROLL 6;if (o is Dice d d.Roll() is HIGH_ROLL)Console.WriteLine($The value is {HIGH_ROLL}!);elseConsole.WriteLine($The dice roll is not a {HIGH_ROLL}!);} } // The example displays output like the following: // The value is 6! null可以使用 (Constant)常量进行检查。该语句null支持关键字is。其语法为 expr is null 示例代码 using System; class Program {static void Main(string[] args){object o null;if (o is null){Console.WriteLine(o does not have a value);}else{Console.WriteLine($o is {o});}int? x 10;if (x is null){Console.WriteLine(x does not have a value);}else{Console.WriteLine($x is {x.Value});}// null check comparisonConsole.WriteLine($is constant pattern null check result : { o is null });Console.WriteLine($object.ReferenceEquals null check result : { object.ReferenceEquals(o, null) });Console.WriteLine($Equality operator () null check result : { o null });}// The example displays the following output:// o does not have a value// x is 10// is constant pattern null check result : True// object.ReferenceEquals null check result : True// Equality operator () null check result : True }3) var模式 与var模式匹配的模式总是成功。它的语法是: expr is var varname expr的值总是分配给一个名为varname的局部变量。varname是与expr的编译时类型相同的变量。 如果expr的计算结果为null则is表达式生成true并将null赋值给varname。var模式是is为数不多的对空值产生true的用法之一。 你可以使用var模式在一个布尔表达式中创建一个临时变量如下面的例子所示: using System; using System.Collections.Generic; using System.Linq; class Program {static void Main(){int[] testSet { 100271, 234335, 342439, 999683 };var primes testSet.Where(n Factor(n).ToList() is var factors factors.Count 2 factors.Contains(1) factors.Contains(n));foreach (int prime in primes){Console.WriteLine($Found prime: {prime});}}static IEnumerableint Factor(int number) {int max (int)Math.Sqrt(number);for (int i 1; i max; i) {if (number % i 0){yield return i;if (i ! number / i) {yield return number / i;}}}} } // The example displays the following output: // Found prime: 100271 // Found prime: 999683 二、C# 8.0中is的新语法 属性模式 匹配任何非null且属性设置为Length为2的对象示例代码如下 if (value is { Length: 2 }) { } 实现验证的示例 public async TaskIActionResult Update(string id, ...) {if (ValidateId(id) is { } invalid)return invalid;... } 上面的例子中ValidateId()可以返回null或BadObjectRequestResult的一个实例。如果返回了前者验证就成功了并转移到更新主体的其余部分。如果返回的是后者则is{}为真(也就是说当然BadObjectRequestResult的实例是一个对象)验证失败。 如果使用一般写法做个判断可能需要更多的代码如下 public async TaskIActionResult Update(string id, ...) {var invalid ValidateId(id);if (invalid ! null)return invalid;... } 相关文档The is operator - Match an expression against a type or constant pattern - C# | Microsoft Learn
http://www.hkea.cn/news/14577492/

相关文章:

  • 百度收录删除旧网站个人网页制作源代码格式
  • 网站建设相关技术给wordpress首页添加一个公告
  • 网站源码偷取工具wordpress导购插件
  • 东莞机电学校网站建设与管理wordpress 文章页显示
  • 苏州外贸公司网站建设流程自己创建平台型网站
  • 做网站需要的费用响应式网站项目
  • 2019做网站免费注册自己的网站
  • 公司网站开发多少钱电商网站入口
  • 内江规划建设教育网站河南开元建设有限公司网站
  • 网站创作思路网站域名的安全性
  • 免费的建筑设计网站涿州做网站的公司
  • 网站开场flash怎么做的网站建设的功能有哪些内容
  • 比较好的营销网站京东网站开发
  • 查企业数据要去什么网站图册制作
  • 有哪些用960gs做的网站北京公司注册代理
  • 深圳小程序服务商搜索引擎优化需要多少钱
  • 泰安三合一网站建设公司wordpress 多说 登陆
  • 网站界面设计规范外贸营销型建站
  • 做自己网站做站长内蒙古最新消息今天
  • 如何投诉做网站的公司公司网站模板源代码
  • 厦门网站建设维护网站搭建有分谷歌
  • 网站开发工程师学什么语言免费的网络推广有哪些
  • 做英语教具的网站自己做的网站搜索不到
  • asp网站后台登陆地址开发公司名称起名大全
  • 企业网站教程做网站容易挣钱吗
  • wordpress可以建哪些网站吗市场营销专业学什么
  • 长沙哪家网站建设比较好iis7建立网站
  • 长沙做医院的网站建设响应式网站开发源码
  • seo网站推广优化费用小程序平台商城
  • dedecms网站邮件程序怎麽做网站