1、warning CS8600: 将 null 文本或可能的 null 值转换为不可为 null 类型。

原代码

string returnedString = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned);

处理后的代码

string returnedString = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned)!;

简单分析:

2、 warning CS8602: 解引用可能出现空引用。

原代码

string local = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned).ToString();

处理后的代码

string local = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned)!.ToString();

3、 warning CS8625: 无法将 null 字面量转换为非 null 的引用类型。

源代码

uint bytesReturned = GetPrivateProfileString(section, null, null, chars, SIZE, iniFile);

处理后的代码

uint bytesReturned = GetPrivateProfileString(section, null!, null!, chars, SIZE, iniFile);

简单分析

11-05 13:51