C#中的那些警告如何去除?完全去除C#警告

news2024/11/18 10:27:37

一般在c++中没有使用的变量会有警告,C#中也有,在QT中我们利用Q_UNSED可以直接消除这些警告,那么我们在C#中该如何做才能消除这些不必要的警告呢?经过查询微软官方网站发现,有的找到了解决方法,有的仍然一筹莫展,,网络上没有任何关于消除警告的方法,于是只能自己慢慢琢磨,经过一番努力,可以说找到了消除这些警告“钉子户”的方法,这里分享出来,给那些和我一样讨厌看到这些警告的朋友们。

1、在项目配置文件中去掉Nullable描述

在这里插入图片描述

2、给变量增加isnull条件判断

void GetMessageLength(string? message)
{
    if (message is not null)
    {
        Console.WriteLine(message.Length);
    }
}
public void GetMessage(string? message)
{
    if (IsNotNull(message))
        Console.WriteLine(message.Length);
}
private static bool IsNotNull([NotNullWhen(true)] object? obj) => obj != null;

3、给变量或属性设置可为null

private string _name = null!;
public DbSet<TodoItem> TodoItems { get; set; } = null!;

4、在参数类型后增加?

一种是添加 ? 注释,使变量成为可以为 null 的引用类型

 void IList.Insert(int index, object ?value)
        {
            if (value != null)
                this.Insert(index, (Animal)value);
        }
 object? IList.this[int index]
        {   
            get
            {
                return _list[index]!;
            }
            set
            {  
                _list[index] = (Animal?)value;//(Animal)value;
            }
        }

5、在参数后增加!

将 null 包容性运算符 ! 添加到右侧:

string msg = TryGetMessage(42)!;
return msg!;
Console.WriteLine(msg!.Length);

6、使用empty

public class Person
{
    public string FirstName { get; set; } = string.Empty;
    public string LastName { get; set; } = string.Empty;
}

7、给参数使用NotNullWhen时配合显式null

public bool TryGetMessage(int id, [NotNullWhen(true)] out string? message)
{
    message = null;
    return true;

}

8、set设置器警告

就算这样,我们发现,有的set的设置器的警告还是没有办法去掉,这个时候我们可以在返回类型上加上“!”即可,如下图:

在这里插入图片描述
在这里插入图片描述
还有这种情况,看起来是构造函数被警告了,实际为属性的问题
在这里插入图片描述

在这里插入图片描述

public class Person
{
    public string? FirstName { get; set; }
    public string? LastName { get; set; }
}

我们可以参考的官方说明:点击这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习bootstrap怎么样?

想必学习前端的都知道这个响应式框架&#xff0c;之前我接触这个框架的时候是在学习前段页面设计的进阶教程是接触的&#xff0c;那个时候要做那种登陆注册界面&#xff0c;里面的输入框很让人头疼有时候电脑的宽度不一样或者是写了一个精美的网页然后放到手机上的时候就变了模…

【C++】继承(基类和派生类的关系、菱形虚拟继承、继承和组合)

文章目录1、继承的概念和定义2、基类和派生类的赋值转换3、继承中的作用域4、派生类的默认成员函数5、继承与友元和静态成员6、复杂的菱形继承及菱形虚拟继承7、继承和组合1、继承的概念和定义 继承是面向对象程序设计上程序复用的重要手段&#xff0c;以往接触的复用都是函数复…

程序员的自律之路

世界的精彩不是单纯的美丽&#xff0c;毕竟丑恶也是美丽的食粮&#xff0c;黑暗也是光明的救世主 很久没有写博客了&#xff0c;最近半年不太稳定&#xff0c;也经历了一些自我成长的东西。 事后我进行深度反省&#xff0c;思考一个人或者说是一个程序员的失控原因到底是什么&a…

推荐几款好用的企业级文档管理软件

知识库&#xff0c;又称为智能数据库或人工智能数据库。知识库的概念来自两个不同的领域&#xff0c;一个是人工智能及其分支-知识工程领域&#xff0c;另一个是传统的数据库领域。由人工智能&#xff08;AI&#xff09;和数据库&#xff08;DB&#xff09;两项计算机技术的有机…

Java字符串查找(3种方法)

在给定的字符串中查找字符或字符串是比较常见的操作。字符串查找分为两种形式&#xff1a;一种是在字符串中获取匹配字符&#xff08;串&#xff09;的索引值&#xff0c;另一种是在字符串中获取指定索引位置的字符。根据字符查找String 类的 indexOf() 方法和 lastlndexOf() 方…

金融公司在 2022 年扩大了对下一代技术的投资

根据 Broadridge Financial Solutions, Inc. 的一份新报告&#xff0c;大多数金融服务公司现在认为数字化转型对其业务至关重要&#xff0c;并且已经在寻求下一波技术来帮助取得成功。 在对 500 名最高管理层高管及其在全球买方和卖方的直接下属进行的 2023 年数字化转型和下…

代码随想录算法训练营第五十七天_第九章_动态规划 | 1143.最长公共子序列、1035.不相交的线、53. 最大子数组和 动态规划

LeetCode 1143.最长公共子序列 视频讲解https://www.bilibili.com/video/BV1ye4y1L7CQ文章讲解https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路&#xff1a;代码&#xff1a;LeetCode 1035.不相交的线 视频讲解h…

技术开发119

技术开发119 业务内容&#xff1a; 汽车零部件的制造产业用机械零部件的设计、制造、组装电机零部件的制造 公司简介&#xff1a; 董事长&#xff1a;管原胜安 资本金&#xff1a;3200万日元 员工数&#xff1a;36名 成立时间&#xff1a;1972年7月 资格认证&#xff1a…

【学习笔记】coursera | Computational Neuroscience | Week 1

Course Introduction 1.1 Course Introduction 三种模型 Descriptive models of the brain&#xff08;描述型, what&#xff09;&#xff1a;神经元如何对外部刺激做出反应&#xff1f;用神经元编码模型如何量化描述&#xff1f;如何从神经元中获取信息&#xff08;解码&am…

Linux 中 su 命令的使用

目录 &#x1f34d;①普通用户切换 root 用户 &#x1f349;②root 用户切换普通用户 su 命令的作用是在 Linux 中切换用户&#xff0c;是英文单词&#xff1a;Switch&#xff08;切换&#xff09; User&#xff08;用户&#xff09; 的缩写。 语法&#xff1a; su [-] 用户…

三维引擎大盘点

近年&#xff0c;智慧城市、数字孪生大热&#xff0c;三维引擎就成为了绕不过去的一个词&#xff0c;但是目前市场的的三维引擎多的让人头晕目眩&#xff0c;他们各自都有哪些优缺点呢&#xff0c;今天我们就来盘点下主流的三维引擎。 常见的三维引擎按平台可分为客户端三维引擎…

1613_PC汇编语言_位操作

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这一次看一下位操作的章节。 如果是逻辑位操作其实不需要考虑大小端。 1. 移位操作在快速乘除法中经常用到。 2. 这里提到了一个算是移位&#xff0c;其实跟前面的…

Hive(4):场景案例:Apache Hive初体验

1 体验1&#xff1a;Hive使用起来和Mysql差不多吗&#xff1f; 1.1 背景 对于初次接触Apache Hive的人来说&#xff0c;最大的疑惑就是&#xff1a;Hive从数据模型看起来和关系型数据库mysql等好像。包括Hive SQL也是一种类SQL语言。那么实际使用起来如何&#xff1f; 1.2 过…

激光投影仪哪款好?坚果N1 Pro和海信Vidda C1和当贝X3测评

当贝x3、坚果N1Pro和海信Vidda C1都是近期比较热门的激光投影仪,作为消费者来说选择哪一款比较好呢?看看实测对比和参数对比就知道它们的区别了。(一)三款激光投影仪的实测对比1)外观对比:坚果N1 Pro枪灰加深灰的色彩组合,自带了一个云台,能够支持任意角度调整,但比普通的投影…

【6s965-fall2022】量化 Quantization Ⅰ

模型的大小不仅和参数量的多少有关&#xff0c;而且也和位宽有关。 ModelSize#ParameterBitWidth.ModelSize \#Parameter BitWidth. ModelSize#ParameterBitWidth. 低位宽的运算操作容易实现、运算速度快、功耗低。 什么是量化&#xff1f; 从广义上讲&#xff0c;量化是将连…

龙蜥开发者说:6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数 | 第 15 期

「龙蜥开发者说」第 15 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者陈成…

PTA L1-020 帅到没朋友(详解)

前言&#xff1a;本期是关于帅到没朋友的详解&#xff0c;内容包括四大模块&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 今天你c了吗&#xff1f; 题目&#xff1a; 当芸芸众生忙着在朋友圈中发照片的时候&#xff0c;总有一些人因为太帅…

如何将视频制作成高清gif?试试这一招快速完成

随着现在短视频平台的兴起&#xff0c;越来越多的小伙伴在刷到好玩有趣的视频时都会下载下来&#xff0c;进行分享。但是&#xff0c;视频的体积往往比较大&#xff0c;传输起来非常的不方便。这时候就可以将视频转换成gif动图来使用。接下来&#xff0c;小编给大家分享几个视频…

CobaltStrike之宏钓鱼及shellcode 实验详细

文章目录预备知识实验目的实验地址实验环境实验步骤一启动cs服务器客户端连入服务器生成office宏病毒利用宏病毒上线CS生成宏文件利用成功实验步骤二实验步骤三预备知识 CobaltStrike是一款渗透测试神器&#xff0c;常被业界人称为CS神器。CobaltStrike已经不再使用MSF而是作为…

css图片铺满浏览器窗口且不变形

今天项目中提到一个需求&#xff0c;需要把背景图片铺满浏览器全屏&#xff0c;且图片不变形。 也就是说显示的宽高是不确定的&#xff0c;我第一反应就是background-size: 100% 100%;但是这样做有一个弊端。 下面结合代码图具体讨论一下&#xff1a; 首先&#xff0c;设计一个…