私はTreeNodeCollectionの反復処理で型推論ロジックが失敗するのはなぜですか?
このコードは罰金コンパイル、ビットは、この動作に困惑しています:
private void CheckAvailabilityOfCurrentTreeNodes() {
foreach(TreeNode treeNode in this.DeviceTree.Nodes) {
if(Object.ReferenceEquals(treeNode.Tag, _recorder.CaptureDevice)) {
...
}
}
}
が、以下は言ってコンパイルエラーを生成し、この場合には'object' does not contain a definition for 'Tag'
private void CheckAvailabilityOfCurrentTreeNodes() {
foreach(var treeNode in this.DeviceTree.Nodes) {
if(Object.ReferenceEquals(treeNode.Tag, _recorder.CaptureDevice)) {
...
}
}
}
、タイプ推論ロジックは、イテレータの結果タイプとしてObject
を返しますが、なぜTreeNodeCollection
が厳密に型指定されているのか、なぜわかりませんか。このコレクションタイプはかなり日付がついていますか?
誰かがこの動作の技術的な理由について私に教えてもらえますか?
確かに、コレクションの強く型付けされた「ファサード」は、それが何とか強く型付けされたと私に信じさせました。洞察に感謝します! – BlueStrat