C# 请帮我解释一下这个C表达式
这是什么意思C# 请帮我解释一下这个C表达式,c#,C#,这是什么意思 var cdParams = (includeUniversals) ? new[] {pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name]} : new[] {pageDictionary[pageName]}; 基本上可以归结为什么?新[]的意思是什么?这是一个很好的例子。如果条件为true,则执行第一种情况。如果为false,则执行第二种情况。这是一个错误。如果条件为true,则执行
var cdParams = (includeUniversals)
? new[] {pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name]}
: new[] {pageDictionary[pageName]};
基本上可以归结为什么?新[]的意思是什么?这是一个很好的例子。如果条件为true,则执行第一种情况。如果为false,则执行第二种情况。这是一个错误。如果条件为true,则执行第一种情况。如果为false,则执行第二种情况。如果布尔includeUniversals的计算结果为true,则返回一个包含pageDictionary[pageName]和pageDictionary[CNNService.UniversalPage.Name]的新匿名对象数组,否则返回一个包含pageDictionary[pageName]的新匿名对象数组
这就是您要查找的吗?如果布尔值includeUniversals的计算结果为true,则返回一个包含pageDictionary[pageName]和pageDictionary[CNNService.UniversalPage.Name]的新匿名对象数组,否则返回一个包含pageDictionary[pageName]的新匿名对象数组
这就是你想要的?大致相当于:
Foo[] cdParams; // Use the correct type instead of Foo. NB: var won't work here.
if (includeUniversals) {
dParams = new Foo[2];
dParams[0] = pageDictionary[pageName];
dParams[1] = pageDictionary[CNNService.UniversalPage.Name];
} else {
dParams = new Foo[1];
dParams[0] = pageDictionary[pageName];
}
这大致相当于:
Foo[] cdParams; // Use the correct type instead of Foo. NB: var won't work here.
if (includeUniversals) {
dParams = new Foo[2];
dParams[0] = pageDictionary[pageName];
dParams[1] = pageDictionary[CNNService.UniversalPage.Name];
} else {
dParams = new Foo[1];
dParams[0] = pageDictionary[pageName];
}
见和
请参阅和。根据includeUniversals,cdParams将是一个包含两个值的数组,即pageDictionary[pageName]和pageDictionary[CNN服务.UniversalPage.Name]——或者,它将是一个包含一个值的数组,即pageDictionary[pageName]。根据includeUniversals,cdParams将是一个包含两个值的数组,即pageDictionary[pageName]和pageDictionary[CNNService.UniversalPage.Name]——或者,它将是一个包含一个值的数组,即pageDictionary[pageName]。表达式的哪一部分有问题?这个操作人员新的[]运算符?取决于includeUniversals,您的cdParam要么是两个值的数组,要么是在PageDictionary中仅包含一个值的数组,该值是您在表达式的哪一部分遇到问题的值?这个操作人员新的[]运算符?取决于includeUniversals,您的cdParam要么是两个值的数组,要么是只有一个值的数组,而不管您在其中作为值的类型是什么pageDictionary@PeterLaCombJr.:new[]表示它推断类型。它可能不是对象,而是其他类型。我已经更新了代码,使其更加明确。我想我从来没有注意到这一点,而且我的使用总是导致object[]。谢谢。再看看这个问题,富可能是佩奇。不管它是什么。@PeterLaCombJr.:new[]意味着它推断类型。它可能不是对象,而是其他类型。我已经更新了代码,使其更加明确。我想我从来没有注意到这一点,而且我的使用总是导致object[]。谢谢。再看看这个问题,富可能是佩奇。不管那是什么。