powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
6 сообщений из 6, страница 1 из 1
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592887
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы так использовать констуктор абстрактного класса, не переопределяя его
то есть:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  public abstract class MyBase
  {
    private string tt;
    public MyBase(string ss)
    {
      tt = ss;
    }
  }
  public class MyInst : MyBase
  {
  }


я хочу
Код: c#
1.
var ee = new MyInst("ww");


ну или может как-то по-другому извернуться. Дело в том, что дочерних классов будет много, но конструктор у всех одинаковый и может быть обработан на уровне базового класса
...
Рейтинг: 0 / 0
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592923
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это чтоли?

Код: c#
1.
2.
3.
4.
   public class MyInst : MyBase
    {
        public MyInst(string ss) : base(ss) { }
    }
...
Рейтинг: 0 / 0
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592924
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Shocker.Pro]
то есть:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  public abstract class MyBase
  {
    private string tt;
    public MyBase(string ss)
    {
      tt = ss;
    }
  }
  public class MyInst : MyBase
  {
  }


Не скомпилируется.
Shocker.ProДело в том, что дочерних классов будет много, но конструктор у всех одинаковый и может быть обработан на уровне базового класса
При наличии в базовом классе параметризированного конструктора в дочерних он должен быть в любом случае.
...
Рейтинг: 0 / 0
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592946
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanekoffice, Сон Веры Павловны - мне просто не хочется плодить одинаковые конструкторы в каждом дочернем классе а потом менять их, если что-то поменяется.

Предложили вариант - создать в базовом классе статический метод, который будет порождать инстансы дочек, тогда определять конструкторы в дочках не понадобится - ща буду пробовать сделать так.
...
Рейтинг: 0 / 0
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592957
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изворачиваться. Вынести инициализацию из конструктора
как-то так можно
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
    public abstract class MyBase
    {
        public static T getInstance<T>(string ss) where T : MyBase, new()
        {            
            T inst = new T();
            inst.init(ss);
            return inst;
        }
        private string tt;
        protected MyBase()
        {
        }
        public virtual MyBase init(string ss)
        {
            tt = ss;
            return this;
        }
    }
    public class MyInst : MyBase
    {
    }

....
 var ee = MyBase.getInstance<MyInst>("ww");
...
Рейтинг: 0 / 0
C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
    #38592965
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

ага, так сейчас и пробую, спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# Как бы так использовать констуктор абстрактного класса, не переопределяя его
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]