Maison >développement back-end >C++ >Pourquoi une «liste» ne peut-elle pas être affectée à une variable «list» en C #?

Pourquoi une «liste» ne peut-elle pas être affectée à une variable «list» en C #?

Barbara Streisand
Barbara Streisandoriginal
2025-01-28 13:46:09441parcourir

Why Can't a `List` Be Assigned to a `List` Variable in C#?

Pourquoi la variable de la valeur d'objet

ne peut-elle pas? List<string> En C #, essayez d'attribuer List<object> les objets aux variables peuvent provoquer des erreurs pendant la compilation. Cette opération n'est pas autorisée même si elle est explicitement convertie. Explorons le principe derrière:

Considérez la scène suivante: List<string> List<object>

Si cette conversion peut être exécutée avec succès, que se passera-t-il si vous ajoutez un type de

à la liste

? Cela créera une incohérence dans la liste
<code class="language-csharp">List<string> sl = new List<string>();
List<object> ol;
ol = sl; // 产生编译时错误</code>
, car la liste

attend uniquement la chaîne. Lorsque vous traversez la liste , la rencontre de l'instance ol provoquera l'anomalie de conversion de classe, indiquant qu'elle ne peut pas être convertie en chaîne. Foo sl Au contraire, la conversion de en sl peut être utile. En convertissant d'une classe plus générale () en une classe plus spécifique (sl), il garantit que l'ajout d'éléments à la liste des chaînes ne violera pas les contraintes de la liste d'objets. Cependant, C # peut ne pas soutenir ce type de conversion. Foo

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn