gpt4 book ai didi

C#模板参数作为模板接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:28 27 4
gpt4 key购买 nike

我正在尝试将这段代码从 Java 翻译成 C#,但我无法找到正确的语法

Java:

public class MyClass<T extends IMyInterface<T>>

我尝试翻译成 C#:

public class MyClass<T, U> where T: IMyInterface<U>

如果我这样做 public class MyClass<T> where T: IMyInterface<T> ,类声明处没有编译错误,但我不知道如何使用该类。

更具体地说,我有一个接口(interface) IPoint<T> ,由类 EuclideanPoint:IPoint<EuclideanPoint> 实现.另外,我有一个模板类 Clusterer<U> ,它不应该关心接口(interface)的模板参数,它应该只确保 U 是 IPoint 类型。

谢谢。

最佳答案

不,Java 的 C# 等价物只是:

public class MyClass<T> where T : IMyInterface<T>

Java中一种类型参数,C#中一种类型参数。

你如何使用这个类将取决于什么IMyInterface<T>是什么实现它。例如,如果它是 IEquatable<T>相反,您可以创建一个 MyClass<int>因为int工具 IEquatable<int> .

关于C#模板参数作为模板接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667786/

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