小编Kaz*_*irs的帖子

在C#中,如何实现一个在函数中调用自身的抽象类,例如一类Addable对象?

假设我们要定义一个允许基本算术的类,称为"可添加".可以添加可添加的东西.

abstract class Addable
{
   public abstract Addable Add(Addable X, Addable Y)
}
Run Code Online (Sandbox Code Playgroud)

实现Addable的正确方法是什么?以下不起作用,它给出:

Number没有实现继承的抽象成员Addable.Add(Addable,Addable).

class Number : Addable
{
     public int Value;

     public Number(int Val)
     {
        Value = Val;
     }

     public Number Add(Number X, Number Y)
     {
         return new Number(X.Value + Y.Value);
     }
}
Run Code Online (Sandbox Code Playgroud)

我认为问题在于Add将(Number,Number)作为其参数不够通用,但我不知道如何继续.

编辑:有些人要求知道这是用来做什么,让我详细说明.我正在使用一种依赖于获取最多几个对象的算法.根据用例,这些对象是数字或分布.为了保持上面的例子,我将假装我需要添加这些数字或分布.所以我希望代码看起来像:

Addable LongAlgorithm(Addable X, Other parameters)
{
   ... // Lots of code that may contain X
   Z = Add(X,Y)
   ... // Code Using Z.

   return Answer // Answer is of the same type as …
Run Code Online (Sandbox Code Playgroud)

c# abstract-class

4
推荐指数
1
解决办法
106
查看次数

标签 统计

abstract-class ×1

c# ×1