Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Статический метод в классе / 8 сообщений из 8, страница 1 из 1
14.03.2014, 13:20
    #38586210
Thor234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
Здравствуйте. Ребят подскажите такой момент на очень простом примере:
Есть класс BaseClass у него есть статический метод GetInstance возвращающий экземпляр
Код: c#
1.
2.
3.
4.
        public static BaseClass GetInstance()
        {
            return new BaseClass();
        }


От этого класса у меня есть наследники FirstClass, SecondClass.
Можно ли без переопределения в потомках модифицировать метод базового класса таким образом, чтобы он возвращал экземпляр текущего класса, а не базового. Например есть я унаследую BaseClass классом FirstClass, то при вызове FirstClass.GetInstance он вернет мне экземпляр типа FirstClass, так же и с SecondClass - вернет экземпляр типа SecondClass
...
Рейтинг: 0 / 0
14.03.2014, 13:23
    #38586215
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
Thor234,
нет, родитель ничего не должен знать о потомках
...
Рейтинг: 0 / 0
14.03.2014, 13:49
    #38586265
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
Элементарно:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public abstract class BaseClass<T> where T : class, new()
{
	public static T GetInstance()
	{
		return new T();
	}
}

public class Test : BaseClass<Test>
{
}
...
Рейтинг: 0 / 0
14.03.2014, 14:08
    #38586310
Thor234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
PallarisThor234,
нет, родитель ничего не должен знать о потомках
А мне и не нужно, в родителе знать о потомках. Смысл таков, что вызываем в BaseClass - получаем экземпляр BaseClass, вызываем в FirstClass - получаем экземпляр FirstClass и тд
...
Рейтинг: 0 / 0
14.03.2014, 14:53
    #38586402
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
LelouchЭлементарно:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public abstract class BaseClass<T> where T : class, new()
{
	public static T GetInstance()
	{
		return new T();
	}
}

public class Test : BaseClass<Test>
{
}

Где-то это я уже видел

Activator.CreateInstance<T> Method
...
Рейтинг: 0 / 0
14.03.2014, 15:26
    #38586472
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
skyANA,

ну тут то синглтон не требуется, можно и открытый конструктор потребовать )
...
Рейтинг: 0 / 0
14.03.2014, 15:44
    #38586506
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
skyANA,

сори, думал вы имеете в виду давнишний спор про синглтон)
...
Рейтинг: 0 / 0
14.03.2014, 16:28
    #38586567
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Статический метод в классе
Lelouch,
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Статический метод в классе / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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