generic fright<
c#で汎用リストを使用する場合、派生タイプのリストを派生型のタイプのリストに割り当てるようにしてください。この問題は、安全性の種類とランタイム中のタイプの安全性の編集との対立によって引き起こされます。 質問とコードの例
次のコードを検討してください:
この例では、ランタイムチェックのため、動物アレイにキリンアレイを割り当てることが効果的です。ただし、リストの配布は、コンピレーション中にエラーを引き起こします。
異なる問題とセキュリティの問題この問題は、汎用型の分散の概念に関連しています。調整により、ベースタイプの位置で派生タイプを使用することができ、インバーターは派生型位置でベースタイプを使用できます。上記の例では、リストをリストに割り当てるリストは、調整された変更と見なされます。<code class="language-csharp">class Animal { } class Giraffe : Animal { } static void Main(string[] args) { // 数组赋值有效,但是... Animal[] animals = new Giraffe[10]; // 隐式转换失败 List<Animal> animalsList = new List<Giraffe>(); //编译错误 // 显式转换也失败 List<Animal> animalsList2 = (List<Animal>) new List<Giraffe>(); //编译错误 }</code>ただし、この割り当てはセキュリティの問題を引き起こす可能性があります。新しいライオンオブジェクトが動物リストに追加された場合、動物リストタイプの安全性に違反している場合でも、コンピレーションチェックなしで動物リスト2に割り当てることができます。
C#4は、インターフェイスと委任のセキュリティ差異に対するサポートを紹介します。 FUNC
C#2では、list 結論
.Convertallを使用できます。
以上がC#のリストにリストを割り当てることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。