目录
(1)增加if (args is null),解除消息警告IDE0060
1、警告现象
C#中经常出现 CA1822、IDE0060和IDE0090消息警告,一般不影响编译生成,经常被忽略而不予处理。
本文章通过新建一个项目,同时出现CA1822、IDE0060和IDE0090消息警告,并通过修改和调试解除掉此消息警告。不是屏蔽和忽略。
using System;
using MR.Data; //使用using指令引入命名空间MR.Data
namespace MR.View
{
class Program
{
static void Main(string[] args)
{
Model model = new Model(); //实例化MR.Data中的类Model
model.GetData(); //调用类Model中的GetData()方法
}
}
}
namespace MR.Data //建立命名空间MR.Data
{
class Model //实例化命名空间MR.Data中的类Model
{
public void GetData()
{
Console.WriteLine("明日之星网校:https://star.mingrisoft.com/");//输出字符串
Console.ReadLine();
}
}
}
/*运行结果:
明日之星网校:https://star.mingrisoft.com/ */
(1)显示的警告消息
CA1822 Member 'GetData' does not access instance data and can be marked as static ConsoleApp1
IDE0060 删除未使用的参数 "args" ConsoleApp1
IDE0090 可简化 "new" 表达式 ConsoleApp1
2、消息警告CA1822的解决
(1)设为静态
把GetData()设置为静态,并在调用GetData()时直接用类名,而不能使用类的对象。
/*Model model = new Model();*/ //实例化MR.Data中的类Model,这一句变成了无用的语句,可以注释掉
Model.GetData(); //调用类Model中的GetData()方法,改为使用类名直接调用而不是对象名
}
}
}
namespace MR.Data //建立命名空间MR.Data
{
class Model //实例化命名空间MR.Data中的类Model
{
public static void GetData()
如果选择注释掉Model model = new Model();则消息警告IDE0090自动消失。
3、消息警告IDE0090的解决
(1)使用new()
删去构造函数new Model()而使用new (),并让Model model指向new ();
Model model = new(); //实例化MR.Data中的类Model,这一句变成了无用的语句,可以注释掉
4、消息警告IDE0060的解决
(1)增加if (args is null),解除消息警告IDE0060
static void Main(string[] args)
{
if (args is null) //解除IDE0060消息警告
{
throw new ArgumentNullException(nameof(args));
}
5、总结:
using System;
using MR.Data; //使用using指令引入命名空间MR.Data
namespace MR.View
{
class Program
{
//[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:删除未使用的参数", Justification = "<挂起>")]
static void Main(string[] args)
{
if (args is null) //解除IDE0060消息警告
{
throw new ArgumentNullException(nameof(args));
}
/*Model model = new(); */ //实例化MR.Data中的类Model,这一句变成了无用的语句,可以注释掉
Model.GetData(); //调用类Model中的GetData()方法,改为使用类名直接调用而不是对象名
}
}
}
namespace MR.Data //建立命名空间MR.Data
{
class Model //实例化命名空间MR.Data中的类Model
{
public static void GetData()
{
Console.WriteLine("明日之星网校:https://star.mingrisoft.com/");//输出字符串
Console.ReadLine();
}
}
}
/*运行结果:
明日之星网校:https://star.mingrisoft.com/ */