我有以下代码返回错误“'对象'不包含带有x参数的构造函数”。试图调用基本构造函数。
解决方案1,项目1
namespace Project.Sub.A
{
internal class Foo
{
internal Foo(int a, long b) {}
}
}
解决方案1,项目2
namespace Project.Sub.B{
internal class Bar : Foo
{
internal Bar(int a, long b,long c) :base(a,b+c) {}
}
}
我不知道为什么这不起作用。我的命名空间可能配置错误吗?
最佳答案
internal
访问是按程序集而不是名称空间进行的。
因为基类中的构造函数被声明为internal
,所以其他项目中的子类无法访问它。尝试将其更改为protected internal
或仅更改为protected
。
更新
只是注意到基类也是internal
。如果要在第二个项目中看到它,则需要将其设置为public
。或者,您可以在Project1的[assembly:InternalsVisibleTo("Project2")]
中添加AssemblyInfo.cs
。 (不过,我个人不会推荐此选项。)
关于c# - 调用基本构造函数不起作用C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9396449/