これはどういう意味ですか?私のためにこのC#式を解読してください
var cdParams = (includeUniversals)
? new[] {pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name]}
: new[] {pageDictionary[pageName]};
基本的には、それは何に似ていますか?平均と新しい[]はどういう意味ですか?
これはどういう意味ですか?私のためにこのC#式を解読してください
var cdParams = (includeUniversals)
? new[] {pageDictionary[pageName], pageDictionary[CNNService.UniversalPage.Name]}
: new[] {pageDictionary[pageName]};
基本的には、それは何に似ていますか?平均と新しい[]はどういう意味ですか?
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] };
ternary operatorとimplicit array typingを参照してください。それに一つの値、すなわち、pageDictionary[pageName]
と配列であるか、または -
ternary expressionです。条件が真であれば、最初のケースを実行します。 falseの場合は、2番目のケースを実行します。
ブールincludeUniversals
がtrueに評価される場合、そうでない場合は、あなたが探しているものということpageDictionary[pageName]
含む新しい匿名のオブジェクトの配列を返しpageDictionary[pageName]
とpageDictionary[CNNService.UniversalPage.Name]
を含む新しい匿名のオブジェクトの配列を返しますか?
それはこのとほぼ同等です:
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];
}
new []はFooをオブジェクトにします。 –
@PeterLaCombJr .: 'new []'は、型を推定することを意味します。それは 'オブジェクト'ではなく、他の型であるかもしれません。コードをより明示的に更新しました。 –
私はそれに気付かなかったと私の使用法は常にオブジェクト[]になりました。ありがとう。 –
includeUniversals
によって、cdParams
は、その中に二つの値を持つ配列、すなわちpageDictionary[pageName]
とpageDictionary[CNNService.UniversalPage.Name]
あろう。
問題のある部分はどれですか? '? '演算子? 'new []'演算子ですか? –
あなたのcdParamはincludeUniversalsによって異なります。あなたのcdParamは2つの値の配列か、pageDictionaryの値として持っている型の値の1つのみの配列です。 –