类型System.Windows.PresentationFrameworkCollection<T>
不是用于继承吗?我试图创建一个自定义<Type>AnimationsFromKeyFrames
对象,但我无法为KeyFrames属性创建Collection类型,因为Visual Studio显然正在构成一些错误。
Visual Studio报告未实现以下抽象成员,即使它们不存在在任何继承的对象上:
'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .SetItemImplSkipMethodPack(int,MyKeyFrame)'
'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .GetItemImplSkipMethodPack(int)'
'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .RemoveInternal(MyKeyFrame)'
'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .InsertInternal(int,MyKeyFrame)'
'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .IndexOfInternal(MyKeyFrame)'
'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .ContainsInternal(MyKeyFrame)'
'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .AddInternal(MyKeyFrame)'
如何从bizarro世界中实现这些方法,或者告诉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
,GetHashCode
和ToString
。是否有可能这些抽象成员是protected internal
,以便现有的框架类可以从它们继承,但自定义类不能?
答案 0 :(得分:2)
PresentationFrameworkCollection
是一个公共抽象类,但您引用的成员是internal abstract
,这意味着您无法覆盖它们。