将IList <T>转换为T []类型的数组会导致枚举吗?

Bri*_*ett 3 .net c# arrays ilist

我有一个看起来像这样的方法:

T[] field;

public Method(IList<T> argument)
{
    this.field = (T[])argument;
}
Run Code Online (Sandbox Code Playgroud)

当执行方法的主体时,在演员表中是否进行了枚举?如果底层类型不同,会改变吗?

Jon*_*eet 8

不,它不会枚举任何东西.如果argument实际上 a T[],它将成功,如果不是,抛出InvalidCastException异常.(如果argument为null,则返回null.)