1

这是什么意思??

var cdParams = (includeUniversals) 
? new[] {pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name]}
: new[] {pageDictionary[pageName]};

基本上它归结为什么?意思是什么 new[] 是什么意思?

4

5 回答 5

7

它大致相当于:

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];
}
于 2012-05-11T21:29:06.940 回答
5

这是一个三元表达式。如果条件为真,则执行第一种情况。如果为假,则执行第二种情况。

于 2012-05-11T21:29:03.390 回答
3

如果布尔值includeUniversals计算为真,则返回一个新的匿名对象数组包含pageDictionary[pageName]pageDictionary[CNNService.UniversalPage.Name]否则返回一个新的匿名对象数组包含pageDictionary[pageName]

那就是你要找的东西?

于 2012-05-11T21:29:04.363 回答
2
var cdParams // type inferred by the compiler
 = (includeUniversals) ? // if includeUniversals is true

// then cdParams = new a new array with 2 values coming from a dictionary
 new[] { pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name] }

// otherwise, cdParams = a new array with one value
: new[] { pageDictionary[pageName] };

请参阅三元运算符隐式数组类型

于 2012-05-11T21:29:17.930 回答
0

取决于includeUniversalscdParams将是一个包含两个值的数组,即pageDictionary[pageName]pageDictionary[CNNService.UniversalPage.Name]- 或,它将是一个包含一个值的数组,即pageDictionary[pageName]

于 2012-05-11T21:30:21.197 回答