c# - 另一个...由于其保护级别而无法访问...问题

标签 c# inheritance

如果这确实存在于其他关于此错误的问题中,我深表歉意,但我已经查看了 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):

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";
    }

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

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

我是否需要在我的 Spreadsheet 类中实现 IsValid、Normalize 和 Version override 样式方法?或者类似的东西……如果是这样,怎么做?

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

最佳答案

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

关于c# - 另一个...由于其保护级别而无法访问...问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004937/

相关文章:

c# - 获取列表框选定的项目

c# - 为程序集中的现有类定义默认构造函数

c# - .Net继承和方法重载

c# - 用于验证百分比的正则表达式

c# - C# 控制台应用程序中有没有一种方法可以在 main 函数之前自动运行一段代码

C++,基类如何包含子类作为成员并调用其方法

inheritance - 如何正确代理 "inherited"静态方法?

c++ - 当我从下面的代码中删除关键字virtual时,它可以正常工作,否则会出错。单词 “virtual”在这里的意义是什么?

c++ - 可以删除抽象类而不是子类吗?

c# - 线程困境,至少我认为是