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

前端之家收集整理的这篇文章主要介绍了这样的语法在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接口的人重用.

原文链接:https://www.f2er.com/csharp/98891.html

猜你在找的C#相关文章