我很抱歉,如果这个问题出现在其他关于这个错误的问题的某个地方,但我已经看过了TONS,我仍然被抛出。所以我老了“......由于它的保护级别而无法访问”错误。当这个错误出现时,另一个错误就出现了,我认为这是问题的真正症结所在。我得到“SS.Spreadsheet”没有定义构造函数,这意味着我可能没有正确实现从Abstract类继承的构造函数。或者沿着这些方向发展。
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";
}
根据我在这里看到的答案。但仍然没有(并且根据我的理解,这无论如何都不会起作用)。
抽象课是给我的,不能改变。
我是否需要在Spreadsheet类中实现IsValid,Normalize和Version覆盖样式方法?或者那种效果......如果是这样,怎么样?
我对编程世界还很陌生,对C#来说还是新手,所以如果有人能给我一个正确方向的推动,我真的很感激。
答案 0 :(得分:2)
由于示例中的所有内容都是公共的,因此错误可能适用于类本身。尝试将Spreadsheet类公开,看看它是否修复了错误。
答案 1 :(得分:1)
尝试声明Spreadsheet
是公开的:
public class Spreadsheet : AbstractSpreadsheet
{
...
}
您无需在构造函数中设置IsValid
,Normalise
或Version
。
答案 2 :(得分:1)
public class Spreadsheet : AbstractSpreadsheet
{
public Spreadsheet()
: base(v => true, s => s, "default")
{
}
}
制作Spreadsheet
课程public