提问人:Sascha Heimann 提问时间:8/25/2023 最后编辑:Sascha Heimann 更新时间:8/25/2023 访问量:44
将 null 文本或可能的 null 值转换为不可为 null 的类型,即使已检查 null [duplicate]
Converting null literal or possible null value to non-nullable type even if already checked for null [duplicate]
问:
谁能说出为什么编译器会抛出警告,即使我检查了 everthing 的 null??
// check if non default accent color is selected
var accCol = await LocalSorage.GetItemAsync<string>("accentColor");
if (!String.IsNullOrEmpty(accCol) && aColors!=null && aColors.accentColorsList!=null && aColors.accentColorsList.Count()>0)
{
AccentColors res = aColors.accentColorsList.Find(x => x.ColorValue == accCol);
if(res!=null) {
this.selOption = res;
}
this.mAccentBaseColor = accCol;
}
VsCode 在 linq 查询上引发以下警告:将 null 文本或可能的 null 值转换为不可为 null 的类型。罗斯林 CS8600
由于不允许我发布警告的屏幕截图,因此会针对此行抛出警告:
AccentColors res = aColors.accentColorsList.Find(x => x.ColorValue == accCol);
答:
0赞
Sascha Heimann
8/25/2023
#1
好的,我自己找到了解决方案。我必须将 Linq 结果声明为可为 null。
// check if non default accent color is selected
var accCol = await LocalSorage.GetItemAsync<string>("accentColor");
if (!String.IsNullOrEmpty(accCol) && aColors!=null && aColors.accentColorsList!=null && aColors.accentColorsList.Count()>0)
{
AccentColors? res = aColors.accentColorsList.Find(x => x.ColorValue == accCol);
if(res!=null) {
this.selOption = res;
}
this.mAccentBaseColor = accCol;
}
评论