Что самый легкий путь состоит в том, чтобы заставить C# не инстанцировать класса, если не наследовались?
Звучит странным, но я не хочу объяснять почему. У меня есть базовый класс и два класса, которые наследовали его. Я хочу использовать производный класс только а не основу. Получить класс не имеет никаких дополнительных функций. Что является самым легким способом НЕ позволить мне писать новый BaseClass (); таким образом, я случайно не использую его? У меня действительно есть функции, которые воздействуют на базовый класс а не полученный.
Сделать аннотацию класса
базовый класс.
abstract class Person { }
class Programmer : Person { }
var person = new Person(); // compile time error
var programmer = new Programmer(); // ok
Может ли базовый класс быть абстрактным? Это сделает это.
-121--3507306-Наборы абстрактного класса:
public abstract BaseClass
{
}
http://msdn.microsoft.com/en-us/library/sf985hc5.aspx
-121--3507305-public abstract class BaseClass {
...
}
Может ли базовый класс быть абстрактным? Это сделало бы это.
Как вы описываете свои потребности, создавая ваш класс Аннотация
- это путь. Так и будет
Остановите вас от создания базового класса и позвольте вам вызвать функции на
Это. Это также позволит вам пометить функции и свойства как абстрактные и
заставить унаследованные классы для их реализации.
Если вам не нужно поделиться кодом, интерфейс будет хорошим вариантом. Это позволяет вам реализовать его очень похожим на класс Abstarct и отказ от вашего реализации в нее.
Надеюсь, это добавит некоторое значение.
Сделать конструктор BaseClass
Protected:
public class BaseClass {
protected BaseClass()
{
// DO SOMETHING
}
}
public class Derived : BaseClass {
public Derived() {}
}
Вместо нормального:
«Общественный класс MyClass»
делает его
"public abstract Class MyClass"
Установите класс на абстрактный:
public abstract BaseClass
{
}