c# - 如何实现一个通用的抽象函数?
问题描述
问题比问题看起来要复杂一些。我有一个抽象类。我希望它有一个抽象函数,但具有类的返回类型和参数类型,可以实现它。
所以我想要类似的东西:
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)
{ ... }
}
这有点类似于自引用的通用模式
推荐阅读
- r - 嗨,我正在尝试将分类转换为数值,但最终出现错误找不到函数“%>%”
- javascript - 我希望下拉菜单项位于垂直栏中
- sql-server - 将每位客户的销售额与去年的销售额进行比较
- wpf - 在自定义控制代码中处理事件
- python - 如何在pytorch中测试一张图片
- java - 该方法将四个整数作为参数,然后按升序显示它们。不要在本练习中使用 if 语句
- c# - 如何将用户输入的字符串转换为输入中单个字母的数组?
- r - R迭代优化
- python - Python更新数据框的更快方法
- java - java.lang.NoClassDefFoundError: com/google/common/cache/RemovalListener