调用基础构造函数不工作c#

Vor*_*t3x 2 c# constructor base

我有以下代码返回错误"'对象'不包含带x参数的构造函数." 试图调用基础构造函数的行.

解决方案1,项目1

namespace Project.Sub.A
{
  internal class Foo
  {
    internal Foo(int a, long b) {}

  }
}
Run Code Online (Sandbox Code Playgroud)

解决方案1,项目2

namespace Project.Sub.B{
  internal class Bar : Foo
  {
    internal Bar(int a, long b,long c) :base(a,b+c) {}

  }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这不想工作.可能是我的命名空间配置不正确?

Ste*_*tty 8

internal访问是按程序集而不是命名空间.

由于声明了基类中的构造函数internal,因此其他项目中的子类无法访问它.尝试将其更改为protected internal或仅protected.

更新

刚注意到基类也是internal.public如果你想在第二个项目中看到它,你需要制作它.或者,您可以添加[assembly:InternalsVisibleTo("Project2")]AssemblyInfo.cs在PROJECT1.(不过,我不会亲自推荐这个选项.)

  • @Jon,因为他这么说......解决方案1,项目2. (4认同)