gpt4 book ai didi

具有 "where constraint"定义的 C# 泛型 "any generic type"?

转载 作者:IT王子 更新时间:2023-10-29 03:35:37 24 4
gpt4 key购买 nike

举个例子:

  1. 我有一些通用的类/接口(interface)定义:

    interface IGenericCar< T > {...}

  2. 我有另一个类/接口(interface)想与上面的类关联,例如:

    interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}

基本上,我希望我的通用 IGarrage 依赖于 IGenericCar , 不管它是 IGenericCar<int>IGenericCar<System.Color> ,因为我对该类型没有任何依赖性。

最佳答案

通常有两种方法可以实现这一点。

选项 1:向 IGarrage 添加另一个参数代表T应该传递给 IGenericCar<T>约束:

interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }

选项 2:为 IGenericCar<T> 定义一个基础接口(interface)这不是通用的并且对该接口(interface)有约束

interface IGenericCar { ... }
interface IGenericCar<T> : IGenericCar { ... }
interface IGarrage<TCar> where TCar : IGenericCar { ... }

关于具有 "where constraint"定义的 C# 泛型 "any generic type"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com