2

我有外部课程Item,如果我做:

List<Item> items = new List<Item>();

在调试期间将鼠标悬停在其上显示

“items.Count”引发了“System.ArgumentException” int {System.ArgumentException} 类型的异常

我不能分享这个类的全部代码,但可能是什么原因。我反编译了类,我看到有 GetHashCode 和 Equals 方法被覆盖。这可能是一个原因吗?

编辑

在调试中,行后

List<Item> items = new List<Item>();

使用即时窗口并在那里写 items.Count 我得到:

'items.Count' threw an exception of type 'System.ArgumentException'
base {System.SystemException}: {"Cannot find the method on the object instance."}
Message: "Cannot find the method on the object instance."
ParamName: null
4

1 回答 1

1

快速查看 ILSpy 或 Reflector 显示List<T>.Count不可能引发该异常。

/// <summary>Gets the number of elements actually contained in the
///   <see cref="T:System.Collections.Generic.List`1" />.</summary>
/// <returns>The number of elements actually contained in the
///   <see cref="T:System.Collections.Generic.List`1" />.</returns>
public int Count
{
    get { return this._size; }
}

鉴于您在调试期间收到此消息,我相信您有导致此异常的第 3 方控件或插件。尝试清理/重建、重新添加 3rd 方引用和/或在安全模式下运行 Visual Studio

于 2012-07-06T15:11:18.647 回答