C#具有基类和子类的多个构造函数
我有以下超类和子类 我遇到编译时错误:C#具有基类和子类的多个构造函数,c#,C#,我有以下超类和子类 我遇到编译时错误: 1) Error 3 Inconsistent accessibility: parameter type 'DomainObjectModel.ObjectModel.PocoProjectData' is less accessible than method 'DomainObjectModel.ObjectModel.Project.Project(DomainObjectModel.ObjectModel.PocoProjectData
1) Error 3 Inconsistent accessibility: parameter type 'DomainObjectModel.ObjectModel.PocoProjectData' is less accessible than method 'DomainObjectModel.ObjectModel.Project.Project(DomainObjectModel.ObjectModel.PocoProjectData)' C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 19 12 DomainObjectModel
2)Error 4 Inconsistent accessibility: parameter type 'DomainObjectModel.ObjectModel.PocoProjectData' is less accessible than method 'DomainObjectModel.ObjectModel.Project.ProjectCapacity.ProjectCapacity(DomainObjectModel.ObjectModel.PocoProjectData)' C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 102 14 DomainObjectModel
3) Error 5 Inconsistent accessibility: parameter type 'DomainObjectModel.ObjectModel.PocoProjectData' is less accessible than method 'DomainObjectModel.ObjectModel.Project.ProjectCIP.ProjectCIP(DomainObjectModel.ObjectModel.PocoProjectData)' C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 154 14 DomainObjectModel
namespace DomainObjectModel.ObjectModel
{
public class Project
{
public Project()
{
SchedulePhases = new HashSet<SchedulePhase>();
}
public Project(PocoProjectData pocoProjectData)
{
SchedulePhases = new HashSet<SchedulePhase>();
this.AssetId = pocoProjectData.AssetID;
this.CapitalCategoryId = pocoProjectData.CapitalCategoryID;
this.ProgramCategoryId = pocoProjectData.ProgramCategoryID;
this.StatusId = 1;
this.DSFId = pocoProjectData.DsfNumber;
this.IsRollover = "N";
this.IsDeferred = "N";
this.IsApproved = "N";
this.FundingSourceId = 12;
this.IsLongTermLease = "Y";
}
[Key]
public decimal ProjectId { get; set; }
public decimal AssetId { get; set; }
public decimal CapitalCategoryId { get; set; }
public virtual ICollection<SchedulePhase> SchedulePhases { get; set; }
protected bool success = false;
public virtual bool CalculateSchedule(int projectType)
{
return success;
}
public class ProjectCapacity : Project
{
public ProjectCapacity(PocoProjectData pocoProjectData)
: base(pocoProjectData)
{
}
public override bool CalculateSchedule()
{
return success;
}
}
public class ProjectCIP : Project
{
public ProjectCIP(PocoProjectData pocoProjectData)
: base(pocoProjectData)
{
}
public override bool CalculateSchedule(int projectType)
{
return success;
}
}
}
1)错误3可访问性不一致:参数类型“DomainObjectModel.ObjectModel.PocoProjectData”的可访问性低于方法“DomainObjectModel.ObjectModel.Project.Project(DomainObjectModel.ObjectModel.PocoProjectData)”'C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 19 12 DomainObjectModel
2) 错误4可访问性不一致:参数类型“DomainObjectModel.ObjectModel.PocoProjectData”的可访问性低于方法“DomainObjectModel.ObjectModel.Project.ProjectCapacity.ProjectCapacity”(DomainObjectModel.ObjectModel.PocoProjectData)'C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 102 14 DomainObjectModel
3) 错误5可访问性不一致:参数类型“DomainObjectModel.ObjectModel.PocoProjectData”的可访问性不如方法“DomainObjectModel.ObjectModel.Project.ProjectCIP.ProjectCIP(DomainObjectModel.ObjectModel.PocoProjectData)'C:\Workspace\POC\Final\oCPDSService\oCPDSService\DomainObjectModel\ObjectModel\Project.cs 154 14 DomainObjectModel
命名空间DomainObjectModel.ObjectModel
{
公共类项目
{
公共工程()
{
SchedulePhases=newhashset();
}
公共项目(PocoProjectData PocoProjectData)
{
SchedulePhases=newhashset();
this.AssetId=pocoProjectData.AssetId;
this.CapitalCategoryId=pocoProjectData.CapitalCategoryId;
this.ProgramCategoryId=pocoProjectData.ProgramCategoryId;
this.StatusId=1;
this.DSFId=pocoProjectData.DsfNumber;
this.IsRollover=“N”;
this.IsDeferred=“N”;
此项。已批准=“N”;
此.FundingSourceId=12;
this.IsLongTermLease=“Y”;
}
[关键]
公共十进制投影d{get;set;}
公共十进制资产{get;set;}
公共十进制大写分类ID{get;set;}
公共虚拟ICollection SchedulePhase{get;set;}
受保护的bool成功=错误;
公共虚拟bool CalculateSchedule(int projectType)
{
回归成功;
}
公共类项目能力:项目
{
公共项目容量(PocoProjectData PocoProjectData)
:base(pocoProjectData)
{
}
公共覆盖bool CalculateSchedule()
{
回归成功;
}
}
公共类项目CIP:项目
{
公共项目CIP(PocoProjectData PocoProjectData)
:base(pocoProjectData)
{
}
公共覆盖布尔计算时间表(int projectType)
{
回归成功;
}
}
}
另外,如何从基类Project调用子类CalculateSchedule(),以获取Project.SchedulePhases集合
谢谢,错误表明
PocoProjectData
比Project
更难访问。
Project被标记为public,因此PocoProjectData至少也需要是public。请检查。您给我们的错误消息解释了您的问题所在。但是如何从超类调用子类方法?在我的例子中,它是CalculateSchedule()。请就此问另一个问题