这样的语法在C#中意味着什么?

这样的语法在C#中意味着什么?
public abstract class HostFactory<TApp> : ServiceHostFactory
        where TApp : IFoo

解决方法

很多在这里,我想知道这是否是因为“IFoo”的功课,或者你做了那个替换以简化示例.

– :ServiceHostFactory,HostFactory继承自ServiceHostFactory.

-HostFactory< TApp>,HostFactory是泛型类型,因为它具有TApp的类型参数.每当有人使用HostFactory类时,他们都可以为TApp指定一个类型,这将导致该类型在代码中出现TApp的任何地方使用.因此,如果该类具有TApp GetApp()函数,则它们指定< int>对于TApp,然后GetApp实际上是int GetApp()

-where TApp:IFoo,TApp必须实现IFoo接口(这也可能是一个类,表明它必须从该类继承,而不是必须直接继承).

-abstract,HostFactory是一个抽象类,意味着其他类可以继承它,但是没有代码可以实例化HostFactory本身.这就像我给你一个汽车的框架,并说,你在法律上不允许在路上驾驶它,但欢迎你自己制造一辆自己的汽车.

-public HostFactory是公共的,这意味着它对于声明它的程序集之外的代码是可见的.

编辑:有关泛型的更多信息
我将从MSDN一个非常重要的引用开始:“泛型是C#2.0最强大的功能.”

当你写一些可以想象适用于许多类型的东西时,你会使用泛型.例如,在我们在2.0中使用泛型之前,我们必须先将所有内容都转换为Object,然后才能将它放入集合中,这非常危险,因为copmpiler无法验证您是否在以后获得了正确的类型集合中的一个项目.使用泛型我们可以做ArrayList< bool>创建bool的ArrayList,现在不需要强制转换.编译器可以验证我们是否将bool放入集合中.

例如,在上面的类中,我们可以编写与实现IFoo的东西一起工作的算法,只知道该对象能够执行IFoo接口所具有的功能.所以我可以编写一个在IFoo接口上调用方法的算法,然后我的算法将来可以被任何实现IFoo接口的人重用.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...