gpt4 book ai didi

c# - 类如何从自身的参数化版本继承?

转载 作者:太空狗 更新时间:2023-10-30 00:30:22 26 4
gpt4 key购买 nike

我看到一个 C# 类 SomeClass 定义如下

public class SomeClass : IComparable<SomeClass>, IEquatable<SomeClass>
{
// ...
}

我想知道如何将其翻译成英文。我理解的方式在逻辑上似乎是不可能的。类如何从自身的参数化版本继承?另外,这是一种常见的设计模式吗?

最佳答案

关键是要认识到它不是继承(或实现)自身的参数化版本,而是继承(或实现)另一个类或接口(interface),并将自身用作该目标类型的通用参数。

例如,IComparable<T>说会有一个CompareTo()采用 T 类型对象的方法作为参数。所以通过实现 IComparable<SomeClass>您只是保证具有该签名的方法将存在于此类中:

public class SomeClass : IComparable<SomeClass>
{
public int CompareTo(SomeClass other)
{
//...
}
}

是的,这是相当普遍的做法。类通常实现通用 IComparable<>IEquatable<>界面,以表明它们可以与同类的其他项目进行比较。也许还值得一提的是,Java 中的枚举被声明为扩展 Enum<>。它们本身——一种在 C# 中不常见但确实会不时出现的模式。

关于c# - 类如何从自身的参数化版本继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686962/

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