RuntimeBinderException
En C #, nous devons souvent ajouter de nouvelles méthodes à la catégorie existante sans modifier le code source d'origine. La méthode d'expansion est introduite pour répondre à ces besoins.
Considérons une liste entière et utilisez la méthode First()
pour accéder au premier élément:
<code class="language-csharp">List<int> list = new List<int>() { 5, 56, 2, 4, 63, 2 }; Console.WriteLine(list.First());</code>
Ce code s'exécute parfaitement. Cependant, si vous essayez d'utiliser le mot-clé pour convertir la même liste en un objet dynamique, cela provoquera des anomalies: dynamic
<code class="language-csharp">dynamic dList = list; Console.WriteLine(dList.First()); // 抛出 RuntimeBinderException</code>
disponibles. using
dans le code source pendant l'exécution. Cependant, il n'y a pas de mécanisme pratique pour coder ces informations sur le site d'appel. Bien qu'il ait considéré la possibilité de concevoir ce mécanisme, il a finalement été cru que le coût était trop élevé et que le risque était trop élevé. using
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!