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

C#中的警告CS0120、CS0176、CS0183、CS0618、CS0649、CS8600、CS8601、CS8602、CS8604、CS8625及处理

目录

一、CS0120

二、CS0176

1.解决前

2.解决后

3.解决办法

三、CS0183

四、CS0618

五、CS8600

六、CS8602

七、CS8622

1. 解决前:

2. 解决后:

3.解决方法:

八、CS8604和CS8625

九、CS0649

十、CS8601


一、CS0120

严重性

代码

说明

项目

文件

禁止显示状态

错误

CS0120

对象引用对于非静态的字段、方法或属性“Program.CreateXmlFromDatabase()”是必需的

10_2

E:\C#_TM\chapter15\10_2\10_2\Program.cs

31

活动

static void Main(string[] args)
{CreateXmlFromDatabase();
}

        解决办法有两种:

  • 将引用的方法new一个对象出来。
  • 将引用的方法改成static静态方法,或者引用对应版本的方法。

二、CS0176

严重性

代码

说明

项目

文件

禁止显示状态

错误

CS0176

无法使用实例引用来访问成员“Students.SubscribeToRing(SchoolRing)”;请改用类型名来限定它

09_1

E:\C#_TM\chapter17\09_1\Program.cs

13

活动

1.解决前

static void Main(string[] args)
{SchoolRing sr = new();                       //创建学校铃声类的对象Students student = new();student.SubscribeToRing(sr);          		 //订阅铃声Console.Write("请输入打铃参数(1:表示打上课铃;2:表示打下课铃):");sr.Jow(Convert.ToInt32(Console.ReadLine())); //事件只能由发布者触发Console.ReadLine();
}

2.解决后

static void Main(string[] args)
{SchoolRing sr = new();                         //创建学校铃声类的对象Students.SubscribeToRing(sr);                  //订阅铃声Console.Write("请输入打铃参数(1:表示打上课铃;2:表示打下课铃):");sr.Jow(Convert.ToInt32(Console.ReadLine()));   //事件只能由发布者触发Console.ReadLine();
}

3.解决办法

        用类代替实例,这个是静态方法,需要直接使用类名使用,无需创建实例。

三、CS0183

        给定表达式始终为所提供的(“类型”)类型

        如果条件语句的计算结果始终为 true,则不需要条件语句。 当尝试使用 is 运算符评估类型时,会出现此警告。 如果计算结果是值类型,则不需要进行检查。

        is操作符只考虑引用转换、装箱转换和取消装箱转换。下面的程序都会发生编译时错误(CTE):已知表达式将始终是 true 或始终是 false。

int i = 0;                  //声明整型变量i
object obj = i;             //把值类型转换为引用类型,装箱操作解除CS0183
bool vi = obj is int;       //is只能用于引用转换、装箱转换和取消装箱转换
bool result = vi;          	//判断i是否为整型,警告IDE0150
Console.WriteLine(result);  //输出结果
Console.ReadLine();

        解除办法:对is操作的变量进行装箱操作,然后is操作装箱后的变量。

四、CS0618

        “string.Copy(string)”已过时:“This API should not be used to create mutable strings. See https://go.microsoft.com/fwlink/?linkid=2084035 for alternatives.”

        解除CS0618:在Main()方法前添加[Obsolete]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Test15
{class Program{[Obsolete]                      //添加,以解除CS0618static void Main(string[] args){if (args is null)           //解除IDE0060{throw new ArgumentNullException(nameof(args));}string stra = "AI时代";		//声明一个字符串变量stra并初始化string strb;				//声明一个字符串变量strb//使用String类的Copy方法,复制字符串stra并赋值给strbstrb = String.Copy(stra);   //String.Copy(string)已过时,CS0618Console.WriteLine(strb);	//输出字符串strbConsole.ReadLine();}}
}

五、CS8600

        将 null 文字或可能的 null 值转换为不可为 null 的类型。

  • 用string?解除CS8600

        string? name = Console.ReadLine(); //解除CS8600

  • 用??string.Empty解除CS8600

        string str = Console.ReadLine() ?? string.Empty; //解除CS8600

  • 用var解除CS8600

        var name = Console.ReadLine(); //解除CS8600

        为了参考和进一步研究,您收到此错误是因为您在项目中启用了可为空的引用类型docs.microsoft.com/en-us/dotnet/csharp/nullable-references。 Console.ReadLine 返回一个可以为空的字符串 (string?),您尝试将其分配给一个不可为空的字符串变量。

六、CS8602

严重性

代码

说明

项目

文件

禁止显示状态

警告

CS8602

解引用可能出现空引用。

10_3

C:\Users\YCZN_MT\Desktop\测试1\10_3\10_3\Program.cs

118

活动

        若要删除这些警告,需要在取消引用之前添加代码,将该变量的“null 状态”更改为“不为 null”。 集合初始值设定项警告可能更难以发现。 初始化表达式向集合添加元素时,编译器检测到该集合可能为 null。

void WriteMessageLength(string? message)
{if (message is not null)					    //if()解除CS8602{Console.WriteLine(message.Length);	        //CS8602}
}void LogPerson(Person person) 
{ Console.WriteLine(person.MiddleName.Length); 	//警告CS8602Console.WriteLine(person.MiddleName!.Length); 	//没有警告 
}

         这个 ! 运算符其实就是关闭了编译器的空检查。

七、CS8622

严重性

代码

说明

项目

文件

禁止显示状态

警告

CS8622

“void Students.SchoolJow(object sender, EventArgs e)”的参数“sender”类型中引用类型的为 Null 性与目标委托“EventHandler”不匹配(可能是由于为 Null 性特性)。

09_1

E:\C#_TM\chapter17\09_1\Program.cs

55

活动

1. 解决前:

public static void SchoolJow(object sender, EventArgs e)
{if (((RingEventArgs)e).RingKind == 2)          //打了下课铃{Console.WriteLine("同学们开始课间休息!");}else if (((RingEventArgs)e).RingKind == 1)     //打了上课铃{Console.WriteLine("同学们开始认真学习!");}
}

2. 解决后:

public static void SchoolJow(object? sender, EventArgs e)
{略
}

3.解决方法:

        在提示里的object后面加一个?

八、CS8604和CS8625

“int int.Parse(string s)”中的形参“s”可能传入 null 引用实参。
用??string.Empty解除CS8604
int year = Int32.Parse(str?? string.Empty);				//解除CS8604
用if语句解除CS8604
string str = Console.ReadLine() ?? string.Empty;    	//获取用户输入的年份
if (str != null)                                		//解决CS8604
{
int year = Int32.Parse(str);     						//将输入的年份转换成int类型
//计算输入的年份是否为闰年
bool isleapyear = ((year % 400) == 0) || (((year % 4) == 0) && ((year % 100) != 0));
//利用条件运算符输入“是”或者“不是”
string yesno = isleapyear ? "是" : "不是";
Console.WriteLine("{0}年{1}闰年", year, yesno);			//输出结果
Console.ReadLine();
}
double d = double.Parse(Console.ReadLine() ?? string.Empty);//解除CS8604
或者在文件中增加#nullable disable也解除CS8604。

九、CS0649

严重性

代码

说明

项目

文件

禁止显示状态

警告

CS0649

从未对字段“Form1.columnHeader1”赋值,字段将一直保持其默认值 null

06

C:\Users\YCZN_MT\Desktop\测试1\06\06\Form1.cs

10

        private System.ComponentModel.IContainer components=null;

        将赋予初始值null即可。

十、CS8601

严重性

代码

说明

项目

文件

禁止显示状态

警告

CS8601

可能的 null 引用赋值。

06

C:\Users\YCZN_MT\Desktop\测试1\06\06\Form1.cs

54

活动

//解决之前:
private readonly ListView? listView1;
private readonly ColumnHeader? columnHeader1;
private readonly ColumnHeader? columnHeader2;
private readonly ColumnHeader? columnHeader3;
private readonly ColumnHeader? columnHeader4;listView1 = new ListView();{listView1.Columns.AddRange([columnHeader1,columnHeader2,columnHeader3,columnHeader4]);//解决之后:
private readonly ListView? listView1;
private readonly ColumnHeader? columnHeader1;
private readonly ColumnHeader? columnHeader2;
private readonly ColumnHeader? columnHeader3;
private readonly ColumnHeader? columnHeader4;
columnHeader1 = new ColumnHeader();
{columnHeader1.Text = "文件名";columnHeader1.Width = 70;
}
columnHeader2 = new ColumnHeader();
{columnHeader2.Text = "路径";columnHeader2.Width = 140;
}
columnHeader3 = new ColumnHeader();
{columnHeader3.Text = "大小";columnHeader3.Width = 40;
}
columnHeader4 = new ColumnHeader();
{columnHeader4.Text = "创建日期";columnHeader4.Width = 60;
}listView1 = new ListView();{listView1.Columns.AddRange([columnHeader1,columnHeader2,columnHeader3,columnHeader4]);//解决办法:给出现的警告的参数定义并实例化,不让参数为null

相关文章:

C#中的警告CS0120、CS0176、CS0183、CS0618、CS0649、CS8600、CS8601、CS8602、CS8604、CS8625及处理

目录 一、CS0120 二、CS0176 1.解决前 2.解决后 3.解决办法 三、CS0183 四、CS0618 五、CS8600 六、CS8602 七、CS8622 1. 解决前: 2. 解决后: 3.解决方法: 八、CS8604和CS8625 九、CS0649 十、CS8601 一、CS0120 严重性 代…...

js中声明变量的关键字(const,let,var)

const 特点: const不允许在同一作用域重复声明,块级作用域暂时性死区,在声明之前,该变量是不可用的const声明的是一个只读变量,声明之后不能改变其值,一旦声明必须初始化但是const定义的对象属性是可以修…...

Android13 launcher循环切页

launcher 常规切页:https://blog.csdn.net/a396604593/article/details/125305234 循环切页 我们知道,launcher切页是在packages\apps\Launcher3\src\com\android\launcher3\PagedView.java的onTouchEvent中实现的。 1、滑动限制 public boolean onT…...

Java学习路线第一篇:Java基础(2)

这篇则分享Java学习路线第一part:Java基础(2) 从看到这篇内容开始,你就是被选定的天命骚年,将承担起学完Java基础的使命,本使命为单向契约,你可选择YES或者选择YES。 具体路线安排&#xff1a…...

网络工程师精华篇,50种网络故障及解决方法大集合

上午好,我的网工朋友。 做网络工程师,自然离不开网络,而日常工作中能搞多少大项目?最常见的其实还是网络故障的处理了。 怎么最高效地排查网络故障?怎么简单几招通网? 今天就从基础的入手,分…...

Unity播放网络视频

using System.Collections; using System.Collections.Generic; using UnityEngine; using Mx.UI; using Mx.Utils; using UnityEngine.UI; using UnityEngine.Video; /// <summary> 视频UI面板 </summary> public class VideoUIForm : BaseUIForm { private …...

SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测

SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测 目录 SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GWO-CNN-LSTM-selfAttention灰狼算法优化卷积长短…...

线性分类器--图像表示

整个模型 图像表示 二进制图像 灰度图像 彩色图像 大多数分类算法都要求输入向量&#xff01; rbg的图像矩阵转列向量 大小为 32X32 的话&#xff0c;图像矩阵转列向量是多少维&#xff1f; 32x32x3 3072 维列向量...

车载通信架构 —— 传统车内通信网络FlexRay(较高速度高容错、较灵活拓扑结构)

车载通信架构 —— 传统车内通信网络FlexRay(较高速度高容错、较灵活拓扑结构) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,…...

如何在Ubuntu的Linux系统中安装MySQL5.7数据库

前往MySQL数据库官网链接地址下载5.7数据库。 MySQL :: Download MySQL Community Server (Archived Versions)使用ssh的可视化工具将下载的mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz文件上传到Linux服务器&#xff0c;并解压文件 tar -zxvf mysql-5.7.40-linux-glibc2.12-x…...

基于Hadoop的区块链海量数据存储的设计与实现

点我完整下载&#xff1a;基于Hadoop的区块链海量数据存储的设计与实现.docx 基于Hadoop的区块链海量数据存储的设计与实现 Design and Implementation of Mass Data Storage for Blockchain based on Hadoop 目录 目录 2 摘要 3 关键词 4 第一章 引言 4 1.1 研究背景 4 1.2 研…...

运行时错误/缺陷到底是什么缺陷

运行时错误(Run-time Error)是一种跟程序运行状态相关的缺陷。这类缺陷不能通过直接禁用相关特性来屏蔽&#xff0c;而是需要通过分析变量的数值状态来发现可能的异常。简单来说&#xff0c;这些缺陷通常只有当程序执行起来以后&#xff0c;才能逐渐暴露出的缺陷&#xff0c;一…...

应用Web3.0的5种方法提升你的点击量

Web3.0早已成为互联网的全新方向标&#xff0c;为用户带来全新的手机上网感受。它也变成吸引住点击量疯涨的秘密武器。我们将要详细介绍Web3.0的五种使用方法&#xff0c;帮助你更好的了解并应用Web3.0技术性&#xff0c;以提升你的点击量。 1.可靠的身份认证Web3.0技术性提供了…...

计算机服务器中了mallox勒索病毒如何处理,mallox勒索病毒解密文件恢复

科技技术的发展推动了企业的生产运营&#xff0c;网络技术的不断应用&#xff0c;极大地方便了企业日常生产生活&#xff0c;但网络毕竟是一把双刃剑&#xff0c;网络安全威胁一直存在&#xff0c;近期&#xff0c;云天数据恢复中心接到很多企业的求助&#xff0c;企业的计算机…...

408—电子笔记分享

一、笔记下载 链接&#xff1a;https://pan.baidu.com/s/1bFz8IX6EkFMWTfY9ozvVpg?pwddeng 提取码&#xff1a;deng b站视频&#xff1a;408-计算机网络-笔记分享_哔哩哔哩_bilibili 包含了408四门科目&#xff08;数据结构、操作系统、计算机组成原理、计算机网络&#xff09…...

【每日一题】子数组的最小值之和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贡献法单调栈 写在最后 Tag 【贡献法】【单调栈】【数组】【2023-11-27】 题目来源 907. 子数组的最小值之和 题目解读 计算整数数组的连续子数组中最小值的和。 解题思路 本题朴素的解决思想是求出所有的连续子数组…...

【docker】docker总结

一、Docker简介 Docker是开源应用容器引擎&#xff0c;轻量级容器技术。基于Go语言&#xff0c;并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux系统上&#xff0c;也可以实现虚拟化容…...

[英语学习][3][Word Power Made Easy]的精读与翻译优化

[序言] 这次翻译校验, 难度有点大, 原版中英翻译已出现了严重地偏差. 昨晚11点开始阅读如下段落, 花费了1个小时也没有理解原作者的核心表达, 索性睡觉了. 今早学习完朗文单词之后, 9点半开始继续揣摩. 竟然弄到了中午11点30, 终于明白原作者要表达的意思了. 废话不多说&#x…...

使用UIActivityViewController分享图片,没有preview

以前都是用第三方sdk来分享的&#xff0c;最近使用官方的UIActivityViewController来做分享&#xff0c;结果分享图片的时候preview不了分享的图片。 自定义一个继承UIActivityItemProvider的类。关于分享的内容自定义可以自己实现UIActivityItemSource这个协议。首先看看协议的…...

linux安装终端连接工具Tabby

参考&#xff1a;https://zhuanlan.zhihu.com/p/645787655...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...