C#中的那些警告該如何去除(完全去除C#警告)
前言
一般在c++中沒有使用的變量會有警告,C#中也有,在QT中我們利用Q_UNSED可以直接消除這些警告,那么我們在C#中該如何做才能消除這些不必要的警告呢?經(jīng)過查詢微軟官方網(wǎng)站發(fā)現(xiàn),有的找到了解決方法,有的仍然一籌莫展,,網(wǎng)絡(luò)上沒有任何關(guān)于消除警告的方法,于是只能自己慢慢琢磨,經(jīng)過一番努力,可以說找到了消除這些警告“釘子戶”的方法,這里分享出來,給那些和我一樣討厭看到這些警告的朋友們。
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ù)類型后增加?
一種是添加 ? 注釋,使變量成為可以為 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、在參數(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時配合顯式null
public bool TryGetMessage(int id, [NotNullWhen(true)] out string? message) { message = null; return true; }
8、set設(shè)置器警告
就算這樣,我們發(fā)現(xiàn),有的set的設(shè)置器的警告還是沒有辦法去掉,這個時候我們可以在返回類型上加上“!”即可,如下圖:
還有這種情況,看起來是構(gòu)造函數(shù)被警告了,實(shí)際為屬性的問題
public class Person { public string? FirstName { get; set; } public string? LastName { get; set; } }
我們可以參考的官方說明:點(diǎn)擊這里
總結(jié)
到此這篇關(guān)于C#中的那些警告該如何去除的文章就介紹到這了,更多相關(guān)C#警告完全去除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用WebClient登錄網(wǎng)站并抓取登錄后的網(wǎng)頁信息實(shí)現(xiàn)方法
這篇文章主要介紹了C#使用WebClient登錄網(wǎng)站并抓取登錄后的網(wǎng)頁信息實(shí)現(xiàn)方法,涉及C#基于會話操作登陸網(wǎng)頁及頁面讀取相關(guān)操作技巧,需要的朋友可以參考下2017-05-05c#中object、var和dynamic的區(qū)別小結(jié)
這篇文章主要給大家介紹了關(guān)于c#中object、var和dynamic的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09C# 無需COM組件創(chuàng)建快捷方式的實(shí)現(xiàn)代碼
做一個小程序, 需要創(chuàng)建快捷方式, 網(wǎng)上普遍的做法是引入 COM 組件, 雖然也挺方便的, 但引入之后, 程序就需要多帶一個 dll 文件, 這樣, 想做成單文件便攜版就不行了2011-05-05C#實(shí)現(xiàn)給PDF文檔設(shè)置過期時間
我們可以給一些重要文檔或者臨時文件設(shè)置過期時間和過期信息提示來提醒讀者或管理者文檔的時效性,并及時對文檔進(jìn)行調(diào)整、更新等。下面本文將介紹如何通過C#來給PDF文檔設(shè)置過期時間的方法。需要的可以參考一下2022-01-01C#基于Socket實(shí)現(xiàn)簡單聊天室功能
這篇文章主要為大家詳細(xì)介紹了C#基于Socket實(shí)現(xiàn)簡單聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02C#實(shí)現(xiàn)多文件打包壓縮(.Net?Core)
本文詳細(xì)講解了.Net?Core框架下C#實(shí)現(xiàn)多文件打包壓縮的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12