C# 限制继承类中的构造函数

C# 限制继承类中的构造函数,c#,C#,我有一门课: public class MyClass { } 我有一个例子,我不希望任何从类继承的人创建除默认构造函数以外的任何其他构造函数 public class MyInheritedClass : MyClass { MyInheritedClass(string name) { } } 在myInheritedClass(字符串名称)中,不应允许使用。这可能吗?您不能阻止类的使用者/继承者实现自己的构造函数。但是,您可以强制它们使用基类构造函数 也就是说,没有显

我有一门课:

public class MyClass
{

}
我有一个例子,我不希望任何从类继承的人创建除默认构造函数以外的任何其他构造函数

public class MyInheritedClass : MyClass
{

  MyInheritedClass(string name)
  {

  }
}

myInheritedClass(字符串名称)中,不应允许使用
。这可能吗?

您不能阻止类的使用者/继承者实现自己的构造函数。但是,您可以强制它们使用基类构造函数

也就是说,没有显式构造函数的类有一个默认的无参数构造函数。但是,如果您实现了一个带参数的构造函数而没有无参数的构造函数,那么您的类在没有参数的情况下是不可实例化的

示例

public abstract class A 
{
    public A(string x) 
    {
    }
}

public class B : A 
{
    // If you don't add ": base(x)" 
    // your code won't compile, because A has a 
    // constructor with parameters
    public B(string x) : base(x)
    {
    }
} 

不,这是不可能的。我不认为这是可能的,当一些继承时,他们是继承类的所有者,他们可以以任何方式实现它,除非有人站在旁边紧紧握住他们的手。你到底为什么要这样做?这没有任何意义!您可以强制执行基类构造函数。