首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >收到警告:“源表达式总是模式的类型,匹配所有非空值”。

收到警告:“源表达式总是模式的类型,匹配所有非空值”。
EN

Stack Overflow用户
提问于 2017-07-31 21:54:37
回答 2查看 961关注 0票数 5

我试图在这一行代码中使用新的C# 7模式匹配功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (Customers.SingleOrDefault(x => x.Type == CustomerType.Company) is Customer customer)
{
    ...
}

但出于某种原因,Resharper/VisualStudio2017在is Customer下给我一个警告,并给出以下消息

源表达式总是模式的类型,匹配所有非空值。

但是customer也可以是null,对吗?有人能给我解释一下为什么会发出这样的警告吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 22:31:57

你是对的!

ReSharper (不是Visual )实际上是正确的,尽管我不知道为什么会是警告。

虽然CustomersCustomer的集合,但是SingleOrDefault的使用暗示值可能是null,而不是Customer

没有什么能说明Customers产生的所有值都是非null的。

票数 3
EN

Stack Overflow用户

发布于 2020-04-18 02:43:46

如果将is Customer customer替换为is {} customer (需要C# 8),则警告将消失。

顺便说一下,JetBrains 建议这个解决方案,它在重构代码时有一些优点。

但是,如果您发现具有确切类型的代码更具可读性,并且希望在更改类型(例如强制检查)时让编译器失败,则只需完全禁用警告即可。请注意,在这两种情况下,编译的代码(包括IL和JITted)都是相同的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45429913

复制
相关文章
[深入解析C#] 可空值类型
Tony Hoare于1965年在Algol语言中首次引入了null引用的概念,后来他把这项举措称为“十亿美金的过失”。无数开发人员饱受NullReferenceException(.NET)、NullPointerException(Java)等的折磨。由于此类问题的普遍性,Stack Overflow上有大量与之相关的典型问题。既然可空特性如此声名狼藉,为何C# 2以及.NET 2.0要引入可空值类型呢?
科控物联
2022/03/29
2.3K0
Python 正则表达式(贪婪和非贪婪模式)- 匹配颜值美女图片URL
Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;
Devops海洋的渔夫
2019/05/31
1.8K0
空与非空:浅谈非空约束的影响
黄玮(Fuyuncat) 资深Oracle DBA,个人网www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. 非空约束是字段的一个重要属性。但是,很多时候,数据库表的设计人员似乎并不十分在意这个属性。最常见的现象就是,除了主键字段外,所有字段都不指定该属性。而在Oracle中,默认是允许为空。 而实际上,优化器在选择执行计划时,非空约束是一个重要的影响因素。为了说明问题,我们建立以下测试表,然后分别说明非空约束在各种情况下对执行计划和性能的影响。 谓词评
数据和云
2018/03/06
3.2K0
空与非空:浅谈非空约束的影响
C#可空值类型
1. 可空类型修饰符(?)   引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。   例如:string str=null; 是正确的,int i=null; 编译器就会报错。
_一级菜鸟
2021/08/10
1.4K0
小白学习MySQL - TIMESTAMP类型字段非空和默认值属性的影响
前几天读了一篇文章《故障分析 | MySQL 迁移后 timestamp 列 cannot be null》,没想到这两天就碰到了很相近的问题。
bisal
2021/11/10
4.7K0
技术分享 | MySQL 的 TIMESTAMP 类型字段非空和默认值属性的影响
前几天读了一篇文章《故障分析 | MySQL 迁移后 timestamp 列 cannot be null》,没想到这两天就碰到了相近的问题。
爱可生开源社区
2021/11/11
5.1K0
技术分享 | MySQL 的 TIMESTAMP 类型字段非空和默认值属性的影响
正则表达式之贪婪匹配 VS 非贪婪匹配
我们知道,许多程序设计语言都支持利用功能强大的正则表达式进行字符串操作,SAS中也有用正则表达式的PRX Function,平时在写正则表达式的时候会常碰到贪婪匹配与非贪婪匹配的问题。
专业余码农
2020/07/16
2.4K0
正则表达式之非捕获匹配(?:...)
当我们在做Tables、Listings以及SDTM Datasets时,有的时候需要用正则表达式来处理一个较长的字符串,即每隔一定长度插入一个分隔符,进而实现变量换行对齐(Tables、Listin
专业余码农
2020/07/15
1.4K0
.NET中可空值类型实现原理
为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?。但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢?
雪飞鸿
2018/09/05
1K0
.NET中可空值类型实现原理
SpringMVC日期类型接收空值异常问题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
SmileNicky
2019/10/28
1.2K0
SpringMVC日期类型接收空值异常问题
PHP 类型判断和NULL,空值检查
 PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤。
lin_zone
2018/08/15
3.4K0
震惊 php empty 函数判断结果为空,但实际值却为非空
最近我在一个项目中使用 empty 时获取到了一些意料之外的结果。下面是我处理后的调试记录,在这里与你分享了。
柳公子
2018/09/17
3.3K0
hive补全连续或非连续空值数据sql
爬虫或业务场景运行中经常会出现丢数据的情况,可能随机丢一分钟,或者丢几十分钟,完全没有规律,如果想用上一个有效值来补全的话单纯用lag函数无法实现
chimchim
2023/10/17
5660
hive补全连续或非连续空值数据sql
Oracle中date类型对应 MySQL 时间类型以及空值的处理
因为在做Oracle---->MySQL的数据迁移的时候,发现Oracle中的date类型,对应的MySQL的时间类型设置不当容易引起错误,特别是存在空值的时候
星哥玩云
2022/08/16
3.2K0
真香警告!扩展 swagger 支持文档自动列举所有枚举值
承接上篇文章 《一站式解决使用枚举的各种痛点》 文章最后提到:在使用 swagger 来编写接口文档时,需要告诉前端枚举类型有哪些取值,每次增加取值之后,不仅要改代码,还要找到对应的取值在哪里使用了,然后修改 swagger 文档。反正小黑我觉得这样做很不爽,那有没有什么办法可以让 swagger 框架来帮我们自动列举出所有的枚举数值呢?
Coder小黑
2020/05/12
3.1K1
Excel公式技巧68:查找并获取所有匹配的值
在《Excel公式技巧67:按条件将数据分组标识》中,我们根据指定的条件采用数字标识将数据进行了分组。利用这列分组数据,我们能方便地查找并获取所有匹配的值。
fanjy
2020/12/08
10.9K0
Excel公式技巧68:查找并获取所有匹配的值
C# 堆与栈、值类型与引用类型、可空类型
栈是一种先进后出的数据结构,是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。栈中每个指针(当运行到那个变量时)会指向堆中的某一内存区域或说是空间。 堆(heap)就直接是内存区域了,它是为了栈的引用而开发内存的。通常内置变量就是值类型是被保存在栈中的。其他由.NET框架(Framework)提供的,或者是我们自己定义的对象即引用类型,一般被创建在堆中并将由栈中变量引用。是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
aehyok
2019/02/25
9850
SpringMVC系列之日期类型接收空值异常
最近遇到SpringMVC写个controller类,传一个空串的字符类型过来,正常情况是会自动转成date类型的,因为数据表对应类类型就是date的
SmileNicky
2022/05/07
6150
SpringMVC系列之日期类型接收空值异常
点击加载更多

相似问题

警告:“onCreateView”总是返回非空类型。

14

基于元组的非穷举模式匹配警告

13

使用类型族限制GADT时消除“非穷举模式匹配”警告

20

警告:与空值相比,非空参数“this”

15

空Map模式甚至与非空映射匹配

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文