4

如果在其他有关此错误的问题中确实存在此问题,我深表歉意,但我已经查看了 TONS 并且仍然被抛出。所以我老了“......由于它的保护级别而无法访问”错误。当这个错误出现时,另一个错误也会出现,我认为这是问题的真正症结所在。我得到“SS.Spreadsheet”没有定义构造函数,这意味着我可能没有正确实现从抽象类继承的构造函数。或类似的规定。

public abstract class AbstractSpreadsheet
{
    public Func<string, bool> IsValid { get; protected set; }

    public Func<string, string> Normalize { get; protected set; }

    public string Version { get; protected set; }

    public AbstractSpreadsheet(Func<string, bool> isValid, Func<string, string> normalize, string version)
    {
        this.IsValid = isValid;
        this.Normalize = normalize;
        this.Version = version;
    }
  ...
}

我的课:

class Spreadsheet : AbstractSpreadsheet
{

    public Spreadsheet()
        : base(v => true, s => s, "default")
    {
    }
    ...
}

我也尝试过一些类似的东西:

    public Spreadsheet()
        : base(v => true, s => s, "default")
    {
        IsValid = v => true;
        Normalize = s => s;
        Version = "default";
    }

根据我在这里看到的答案。但仍然没有(并且考虑到我的理解,这无论如何都行不通)。

抽象类是给我的,不能更改。

我是否需要在我的电子表格类中实现 IsValid、Normalize 和 Version 覆盖样式方法?或者类似的东西....如果是这样,怎么做?

我对编程世界还是很陌生,对 C# 也很陌生,所以如果有人能在正确的方向上推动我,我将不胜感激。

4

3 回答 3

2

由于您的示例中的所有内容都是公开的,因此该错误可能适用于类本身。尝试将电子表格类公开,看看它是否修复了错误。

于 2012-10-22T04:26:10.713 回答
1

尝试Spreadsheet公开:

public class Spreadsheet : AbstractSpreadsheet 
{
    ...
}

您不需要设置IsValid,NormaliseVersion在您的构造函数中。

于 2012-10-22T04:25:29.763 回答
1
public class Spreadsheet : AbstractSpreadsheet
   {

       public Spreadsheet()
           : base(v => true, s => s, "default")
       {
       }

   }

Spreadsheet上课_public

于 2012-10-22T04:29:54.100 回答