C#中的那些警告該如何去除(完全去除C#警告)
前言
一般在c++中沒(méi)有使用的變量會(huì)有警告,C#中也有,在QT中我們利用Q_UNSED可以直接消除這些警告,那么我們?cè)贑#中該如何做才能消除這些不必要的警告呢?經(jīng)過(guò)查詢微軟官方網(wǎng)站發(fā)現(xiàn),有的找到了解決方法,有的仍然一籌莫展,,網(wǎng)絡(luò)上沒(méi)有任何關(guān)于消除警告的方法,于是只能自己慢慢琢磨,經(jīng)過(guò)一番努力,可以說(shuō)找到了消除這些警告“釘子戶”的方法,這里分享出來(lái),給那些和我一樣討厭看到這些警告的朋友們。
1、在項(xiàng)目配置文件中去掉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、給變量或?qū)傩栽O(shè)置可為null
private string _name = null!;
public DbSet<TodoItem> TodoItems { get; set; } = null!;
4、在參數(shù)類(lèi)型后增加?
一種是添加 ? 注釋?zhuān)棺兞砍蔀榭梢詾?null 的引用類(lèi)型
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、在參數(shù)后增加!
將 null 包容性運(yùn)算符 ! 添加到右側(cè):
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、給參數(shù)使用NotNullWhen時(shí)配合顯式null
public bool TryGetMessage(int id, [NotNullWhen(true)] out string? message)
{
message = null;
return true;
}
8、set設(shè)置器警告
就算這樣,我們發(fā)現(xiàn),有的set的設(shè)置器的警告還是沒(méi)有辦法去掉,這個(gè)時(shí)候我們可以在返回類(lèi)型上加上“!”即可,如下圖:


還有這種情況,看起來(lái)是構(gòu)造函數(shù)被警告了,實(shí)際為屬性的問(wèn)題


public class Person
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
}
我們可以參考的官方說(shuō)明:點(diǎn)擊這里
總結(jié)
到此這篇關(guān)于C#中的那些警告該如何去除的文章就介紹到這了,更多相關(guān)C#警告完全去除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#語(yǔ)言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了C#語(yǔ)言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
C#中Override關(guān)鍵字和New關(guān)鍵字的用法詳解
這篇文章主要介紹了C#中Override關(guān)鍵字和New關(guān)鍵字的用法,需要的朋友可以參考下2016-01-01
C#中對(duì)字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn)
本文主要介紹了C#中對(duì)字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
C#實(shí)現(xiàn)解析百度天氣數(shù)據(jù),Rss解析百度新聞以及根據(jù)IP獲取所在城市的方法
這篇文章主要介紹了C#實(shí)現(xiàn)解析百度天氣數(shù)據(jù),Rss解析百度新聞以及根據(jù)IP獲取所在城市的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
C#使用分部類(lèi)設(shè)計(jì)實(shí)現(xiàn)一個(gè)計(jì)算器
分部類(lèi)是C#4.5中的一個(gè)新特性,它的出現(xiàn)使得程序的結(jié)構(gòu)更加合理,代碼組織更加緊密,本文將使用分部類(lèi)設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器,感興趣的小伙伴可以了解下2024-02-02

