【问题标题】:C# Generics - Can someone explain this signatureC# 泛型 - 有人可以解释这个签名吗
【发布时间】:2019-02-06 17:32:10
【问题描述】:

我正在处理一个名为 Merchello 的 C# 开源项目。我正在尝试对其进行一些自定义,但我认为我没有完全理解其中的一些代码。

我可能需要更改一个现有的 MVC 控制器,但我不完全了解它是如何组合在一起的 -

我承认我不熟悉 C# 中的泛型 - 有人可以解释一下这个签名的含义,特别是我想了解 TBillingAddress 的含义。如果您还可以向我指出任何可以帮助我更多地理解这一点的链接。

public abstract class CheckoutAddressControllerBase<TBillingAddress, TShippingAddress> : CheckoutControllerBase
    where TBillingAddress : class, ICheckoutAddressModel, new()
    where TShippingAddress : class, ICheckoutAddressModel, new()
{

【问题讨论】:

标签: c# asp.net-mvc generics


【解决方案1】:

对于TBillingAddress

  • class - 表示类型必须是引用类型

  • ICheckoutAddressModel - 表示该类型必须实现此接口

  • new() - 表示该类型必须具有无参数构造函数

这些都限制了TBillingAddress 可以使用哪些类型,并限制了您可以在任何使用它的方法中对该类型执行的操作。

TShippingAddress 具有相同的约束。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 2018-03-03
    相关资源
    最近更新 更多