我注意到有趣的动作,当我改变列表内部的某个方法,并抛出此方法内的异常,然后超出方法列表的范围不会改变。列表没有改变方法外
如何更改强制该列表以更改catch块?用完了?
List<string> list = null;
try
{
list = new List<string>{"1", "2", "3"};
ChangeMyList(list);
}
catch
{
//here list has 3 elements , why ?
}
void ChangeMyList(List<string> list)
{
list = list.Except(new List<string>{"1", "2"}).ToList();
//here this list has only one element
throw new Exception();
}
列表对象是在try块的内部范围内声明的,因此甚至不抓块你 – Fabjan
代码是没有得到编译存在。 ChangeMyList方法中的代码如何工作:List(“1”,“2”)? –
ehh
我更新了你的代码以实际编译。 – Jamiec