c# – 如何在抽象类中声明任何类型的数组(从给定类型派生)?

c# – 如何在抽象类中声明任何类型的数组(从给定类型派生)?,第1张

概述我不确定我的问题是什么正确的英语单词,所以我认为最好在代码中说明它.我有一个基本的,抽象的 Windows窗体类,我用它来创建许多用于类似目的的派生Windows窗体.在抽象基类中,我们称之为Alfred,我有一个类型为Buddy的数组.有时候,当我想继承Alfred时,我也希望用一些特定于新派生形式AlfredJunior的功能来覆盖类Buddy. 所以,在Alfred类的定义中: protec 我不确定我的问题是什么正确的英语单词,所以我认为最好在代码中说明它.我有一个基本的,抽象的 Windows窗体类,我用它来创建许多用于类似目的的派生windows窗体.在抽象基类中,我们称之为Alfred,我有一个类型为Buddy的数组.有时候,当我想继承Alfred时,我也希望用一些特定于新派生形式AlfredJunior的功能来覆盖类Buddy.

所以,在Alfred类的定义中:

protected Array<Buddy> importantArray;

而我在AlfredJunior中想要的是:

private class BuddyJunior : Buddy{    public int newFIEld;    // Constructors omitted}protected Array<BuddyJunior> importantArray;

我希望Alfred中定义的方法能够访问和使用importantArray的元素,就好像它们是Buddy类型,而不是BuddyJunior.但我需要在BuddyJunior中继承一些额外的功能(一个额外的字段),继承的形式是AlfredJunior.这是怎样的正确方法?

解决方法 这就是你需要的:

public abstract class Alfred<B> where B : Buddy{    protected B[] importantArray;}public class Buddy { }public class BuddyJunior : Buddy{    public int newFIEld;}public class Alfred : Alfred<Buddy> { }public class AlfredJunior : Alfred<BuddyJunior> { }
总结

以上是内存溢出为你收集整理的c# – 如何在抽象类中声明任何类型的数组(从给定类型派生)?全部内容,希望文章能够帮你解决c# – 如何在抽象类中声明任何类型的数组(从给定类型派生)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存