gpt4 book ai didi

c# - 如何实现一个通用的抽象函数?

转载 作者:行者123 更新时间:2023-11-30 15:14:05 25 4
gpt4 key购买 nike

这个问题比问题看起来要复杂一些。我有一个抽象类。我希望它有一个抽象函数,但具有实现它的类的返回类型和参数类型。

所以我想要这样的东西:

public abstract class Class
{
public abstract T DoSomething(T variable) where T : Class;
}

所以我可以再上一个类

public class Class1 : Class
{
public override Class1 DoSomething(Class1 variable) {...}
}

这可能吗?

最佳答案

是的,您需要一个限制为基本类型的泛型参数。

public abstract class MyClass<T> where T : MyClass<T>
{
public abstract T DoSomething(T variable);
}

public class MyDerivedClass : MyClass<MyDerivedClass>
{
public override MyDerivedClass DoSomething(MyDerivedClass variable)
{ ... }
}

这有点类似于 self-referencing generic pattern

关于c# - 如何实现一个通用的抽象函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56058243/

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