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);
简单分析