首页 > 解决方案 > C# - 如何在不指定泛型类型的情况下在“泛型类”类型的 MainForm 类中声明一个变量

问题描述

我有以下通用类:

internal class AutoRegisterThread<T> where T: AutoRegisterAbstract
{
field1....
method1...
}

我有 5 个实现 AutoRegisterAbstract(抽象类)的类。

在我的主表单(内部部分类 MainForm : Form)中,我需要声明一个字段:

AutoRegisterThread<> _currentThread

没有指定泛型类型,因为我可以将 _currentThread 启动为:

_currentThread=new AutoRegisterThread<implementedClass1> 

或者

_currentThread=new AutoRegisterThread<implementedClass2>

_currentThread:将在整个表单中使用(在许多事件中)

标签: c#genericsabstract-class

解决方案


当您在 C# 中有一个泛型类时,您必须提供类型参数。您可以编写另一个不是通用的类。如果有任何逻辑应该在泛型和非泛型类之间共享,您可以将该逻辑移至另一个新类。


推荐阅读