我正在处理一个名为Merchello的C#开源项目。我正在尝试对其进行一些自定义,但我认为我不完全了解其中一些代码。
我可能需要更改现有的MVC控制器,但我不完全了解它的组合方式-
我承认我不熟悉C#中的泛型-有人可以给我解释一下此签名的含义,特别是我想了解TBillingAddress的含义。如果您还能将我指向任何有助于我进一步了解的链接。
public abstract class CheckoutAddressControllerBase<TBillingAddress, TShippingAddress> : CheckoutControllerBase
where TBillingAddress : class, ICheckoutAddressModel, new()
where TShippingAddress : class, ICheckoutAddressModel, new()
{
答案 0 :(得分:2)
对于TBillingAddress
:
class
-表示类型必须是引用类型
ICheckoutAddressModel
-表示类型必须实现此接口
new()
-表示类型必须具有无参数构造函数
所有这些都限制了TBillingAddress
可以使用什么类型,并且限制了您可以使用任何使用该方法的类型来进行的操作。
并且TShippingAddress
具有相同的约束。
另请参阅: