【问题标题】:Another ...is inaccessible due to it's protection level... issue另一个...由于其保护级别而无法访问...问题
【发布时间】:2012-10-22 04:21:00
【问题描述】:

如果在其他关于此错误的问题中确实存在此问题,我深表歉意,但我已经查看了 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# 也很陌生,所以如果有人能在正确的方向上给我一个帮助,我将不胜感激。

【问题讨论】:

    标签: c# inheritance


    【解决方案1】:

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

    【讨论】:

    • 当答案如此简单时,您一定会喜欢这种感觉。我什至没有考虑到这一点,因为我能够毫无问题地在另一个类中声明一个新的电子表格。但这似乎解决了这个问题。谢谢。 :-)
    【解决方案2】:

    尝试将Spreadsheet 声明为公开:

    public class Spreadsheet : AbstractSpreadsheet 
    {
        ...
    }
    

    您无需在构造函数中设置IsValidNormaliseVersion

    【讨论】:

    • 是的,我不这么认为,这就是我没有它的原因。但是后来我看到有人在这里建议,所以我尝试了一下。我想这就是“基地”已经在做的事情了。
    【解决方案3】:
    public class Spreadsheet : AbstractSpreadsheet
       {
    
           public Spreadsheet()
               : base(v => true, s => s, "default")
           {
           }
    
       }
    

    制作Spreadsheetpublic

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2011-09-01
      • 1970-01-01
      • 2011-04-02
      • 2011-02-07
      • 2012-01-25
      • 2022-01-18
      相关资源
      最近更新 更多