C# · 12月 29, 2021

c# – 使用foreach与ArrayList – 自动投射?

ArrayList x=new ArrayList();x.Add(10);x.Add(“SS”);foreach(string s in x){}

这是否意味着当foreach运行时,它尝试转换数组列表的元素来键入foreach表达式?

解决方法 是的,如果某个元素不能转换为该类型,则会得到一个InvalidCastException.在您的情况下,您不能将@R_156_2419@ed int转换为字符串,导致抛出异常.

基本上,它相当于:

foreach (object __o in list) { string s = (string)__o; // loop body}