【发布时间】:2008-09-21 12:13:44
【问题描述】:
我以ListE<T> 类型的形式设置了一个公共属性,其中:
public class ListE<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
是的,它很拗口,但这是设计器要求它在“属性”窗口中显示为可编辑集合的条件。它做了什么!因此,我单击 [..] 小按钮来编辑集合,然后单击添加以将项目添加到集合中。
算术运算导致溢出。
现在,这是一个非常基本的列表,只不过是一个扩展数组。整个事情中唯一接近算术的部分是扩展函数,即使它使用左移而不是乘法,也不会溢出。这一切都让我认为这个异常是在设计器内部引发的,可能是由于我对实现细节的一些小疏忽造成的,但我找不到测试或调试该场景的方法。有人有什么聪明的主意吗?
编辑:是的,我可以成功使用该属性,甚至可以手动使用,即。在OnLoad 处理程序中,我想如果我不能让它工作,我将不得不求助于它,但这并不理想。 :(
【问题讨论】:
-
与你的问题无关,但要注意只能指定ListE
实现IList 。 -
我不想告诉你,但标准库中的 List
具有完全相同的签名。如果你在 VS 中输入“List ”并按 F12,它会带你进入一个重构的定义。 -
事实上,IList
本身与 IEnumerable 一起实现了其他通用接口,所以我可以将其简化为 ListE : IList , IList,但这种方式更明确.
标签: .net winforms visual-studio-2008 designer