除非继承,否则最简单的方法是使C#不实例化一个类?

时间:2010-01-14 19:15:33

标签: c# class inheritance

除非继承,否则使C#不实例化类的最简单方法是什么?

听起来很奇怪,但我不想解释原因。我有一个基类和两个继承它的类。我只想使用派生类而不是基类。 derive类没有任何额外的功能。什么是最简单的方法,不允许我写新的BaseClass();所以我不小心使用它?我确实有在基类上运行的函数,而不是派生的函数。

8 个答案:

答案 0 :(得分:43)

使该类成为abstract基类。

abstract class Person { }

class Programmer : Person { }

var person = new Person();          // compile time error
var programmer = new Programmer();  // ok

答案 1 :(得分:6)

将类设置为abstract:

public abstract BaseClass
{



}

http://msdn.microsoft.com/en-us/library/sf985hc5.aspx

答案 2 :(得分:5)

基类可以是抽象的吗?那样做。

答案 3 :(得分:5)

public abstract class BaseClass {
...
}

答案 4 :(得分:5)

而不是正常:

"public Class MyClass"

制作

"public abstract Class MyClass"

答案 5 :(得分:1)

使BaseClass受保护的构造函数:

public class BaseClass {

   protected BaseClass()
   {
      // DO SOMETHING
   }

}


public class Derived : BaseClass {

   public Derived() {}
}

答案 6 :(得分:1)

您描述自己需求的方式,让您的课程abstract成为可能。它会 阻止你实例化基类,并允许你调用函数 它。这也允许您将函数和属性标记为抽象和 强制继承的类来实现它们。

如果您不需要共享代码,那么界面将是一个不错的选择。它允许你 以非常类似于abstarct类的方式实现它并投射你的 实现它。

希望这会增加一些价值。

答案 7 :(得分:0)

对基类使用受保护的构造函数