在 C# 8 项目中,我使用可为 null 的引用类型,并收到意外的(或者至少对我来说意外的)CS8629 警告,
bool singleContent = x.DataInt != null;
bool multiContent = x.DataNvarchar != null;
if (singleContent && multiContent)
{
throw new ArgumentException("Expected data to either associate a single content node or " +
"multiple content nodes, but both are associated.");
}
if (singleContent)
{
var copy = x.DataInt.Value; // CS8629 here
newPropertyData.DataNvarchar = $"umb://{type.UdiType}/{Nodes[copy].UniqueId.ToString("N")}";
}
我决定使用它GetValueOrDefault()作为解决方法,但我想知道如何向编译器证明如果检查x.DataInt则不能为空。singleContent
请注意, 的类型x.DataInt是int?。
肥皂起泡泡
相关分类