1

该类型System.Windows.PresentationFrameworkCollection<T>不是用于继承吗?我试图创建一个自定义<Type>AnimationsFromKeyFrames对象,但我无法为 KeyFrames 属性创建 Collection 类型,因为 Visual Studio 显然正在弥补一些错误。

Visual Studio 报告以下抽象成员未实现,即使它们不存在于任何继承的对象上:

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.SetItemImplSkipMethodPack(int, MyKeyFrame)”

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.GetItemImplSkipMethodPack(int)”

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.RemoveInternal(MyKeyFrame)”

“MyKeyFrameCollection”没有实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.InsertInternal(int, MyKeyFrame)”

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.IndexOfInternal(MyKeyFrame)”

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.ContainsInternal(MyKeyFrame)”

“MyKeyFrameCollection”未实现继承的抽象成员“System.Windows.PresentationFrameworkCollection<MyKeyFrame>.AddInternal(MyKeyFrame)”

我该如何从 bizarro world 实现这些方法,或者告诉 Visual Studio 停止抱怨并编译项目?

我已经尝试使用以下方法明确定义这些方法,但这些方法不起作用(正确地,根据之前的不存在评论):

void System.Windows.PresentationFrameworkCollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.Generic.IList<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.Generic.ICollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.IList.AddInternal(MyKeyFrame keyFrame)
void System.Collections.ICollection.AddInternal(MyKeyFrame keyFrame)

最后,并认为 MS 不希望社区制作 KeyFrameCollections?

编辑:我试过了,我唯一override的选择是Equals,GetHashCodeToString. 这些抽象成员是否有可能protected internal使现有的框架类可以继承它们,而自定义类不能?

4

1 回答 1

2

PresentationFrameworkCollection是一个公共抽象类,但您所指的成员是internal abstract这意味着您不能覆盖它们。

于 2012-04-10T19:23:32.940 回答