
(o as IList).Add(o);
(o as IList).insert(0,o);
這兩個陳述句都會報這個例外,可能是什么原因導致的呢?
uj5u.com熱心網友回復:
我們先得確定O是啥型別的,比如他原本是readolnly的集合,比如他就是不可變串列uj5u.com熱心網友回復:
賦值后大小就固定了,如果實體化后直接add,insert就不會有這個問題。賦值后可以轉成list<T>去操作。
uj5u.com熱心網友回復:
比如這樣try
{
int[] lst=new int[]{1,2,3};
var b= (lst as IList).Add(0);
}
catch (Exception e)
{
//iint[]當然實作ilist,nt[] 當然是不可變的,所以他可以 as ilst 但不add
}
uj5u.com熱心網友回復:
為什么IList,賦值后就不能直接插入了?
uj5u.com熱心網友回復:
謝謝
uj5u.com熱心網友回復:
IList 是抽象介面,你把他當作實體來用,當然是不行的轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284293.html
標籤:C#
下一篇:ps的輔助工具
