powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Переписать только геттер при наследовании
25 сообщений из 148, страница 3 из 6
Переписать только геттер при наследовании
    #38624140
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, ты же сам просил критики. Ты её получил.

А насчёт "у меня был нормальный такой маленький new": ИМХО не фиг ради каждого куска кода топик создавать и просить оценивать "дизайн там или ещё чего".

Запишись на курсы, там проведут Code Review твоей поделки.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624175
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320, ты же сам просил критики. Ты её получил.
Да всё нормально. Так и надо. ))

skyANAА насчёт "у меня был нормальный такой маленький new": ИМХО не фиг ради каждого куска кода топик создавать и просить оценивать "дизайн там или ещё чего".

Запишись на курсы, там проведут Code Review твоей поделки.
Но тут же бесплатно...

...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624412
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА насчёт "у меня был нормальный такой маленький new"
Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624513
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныskyANAА насчёт "у меня был нормальный такой маленький new"
Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать.Соглашусь. Сразу возникает подозрение, что что-то здесь не так.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624627
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСон Веры Павловныпропущено...

Я насчет этого давно уже считаю, что new - это очень возможный признак кривизны архитектуры. Соответственно, стараюсь его всячески избегать.Соглашусь. Сразу возникает подозрение, что что-то здесь не так.
Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624737
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
Соглашусь. Сразу возникает подозрение, что что-то здесь не так.
Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают.
Конечно не дураки :)
Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья!
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624838
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВuser7320пропущено...

Но ведь зачем-то же new придумали. Дотнет, поди, не дураки делают.
Конечно не дураки :)
Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья!
Т. е. по-вашему, это такой костылик, решающий проблему версионностей и раздельной разработки, а не относящийся к языку?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624842
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320ЕвгенийВпропущено...

Конечно не дураки :)
Есть к примеру твой класс, унаследованный от класса из сторонней dll, и есть в твоем классе метод М1. Все хорошо было, пока не выпустили новую версии dll и твоем любимом базовом классе не появился метод М1. Компилятор автоматически подставит модификатор new, дабы не рушить твоего счастья!
Т. е. по-вашему, это такой костылик, решающий проблему версионностей и раздельной разработки, а не относящийся к языку?
Т. е. для целей оверрайдинга оверлоадом надо использовать именно virtual-override?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624853
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

user7320оверрайдинга оверлоадом
щито?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624858
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

вы вообще разницу между override и overload знаете ?)
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624862
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Т. е. для целей оверрайдинга оверлоадом надо использовать именно virtual-override?
Не, кое-кому точно нужно кое-что почитать. Гради Буча, например. Потому как "оверрайдинг оверлоадингом" - это теплое с мягким. Оверлоадинг - это перегрузка методов по сигнатуре :
Код: c#
1.
2.
3.
public void DoSome() {...}
public void DoSome(string name) {...}
public void DoSome(int id) {...}


а вовсе не все эти выкрутасы с new.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624888
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchuser7320,

user7320оверрайдинга оверлоадом
щито?
В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю. Чтобы как в С++.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624892
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю.
почему "явно" ?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624894
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchuser7320,

user7320оверрайдинга оверлоадом
щито?
Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624896
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилuser7320В Сишарпе явно не хватает множественного наследования классов для полного счастья, я считаю.
почему "явно" ?
Потому что оверлоадинг оверрайдингом я слишком быстро изучил. Да и вы тоже подтягиваетесь, я смотрю.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624907
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Lelouchuser7320,

пропущено...

щито?
Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)?

Чем же вас виртуальное свойство не устроило, оверлоадер оверрайдингом вы наш?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class A
{
	private string _p;

	public virtual string P
	{
		get
		{
			return _p;
		}
		set
		{
			_p = value;
			RaisePropertyChanged("P");
		}
	}
}

public class B : A
{
	public override string P { get { return ""; }}
}
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624936
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchuser7320,

user7320оверрайдинга оверлоадом
щито?
Триангуляционная симпелляция деструбных гентронов ротора турбулентности дивергенции - элементарнейшая вещь!
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38624942
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловныuser7320,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class Class
{
  public virtual void Foo()
  {
    Console.WriteLine("Class.Foo");
  }
}

public class Derived1: Class
{
  public new void Foo()
  {
    Console.WriteLine("Derived1.Foo");
  }
}



а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз.
Далее:
Код: c#
1.
2.
Class v = new Derived1();
v.Foo();


Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов.
ыыы это же вопрос на собеседовании сразу почему отличий реф и вал ))
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625031
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchuser7320пропущено...

Ну а вообще, если отвлечься от незначительных и неважных вещей и вернуться к началу темы, чем вариант, предложенный Сон Веры Павловны - через оверрайдинг отдельного метода, вызываемого геттером - может быть лучше оверрайдинга самого геттера (через оверрайдинг свойства, но в сеттере вызывается базовый сеттер)?

Чем же вас виртуальное свойство не устроило, оверлоадер оверрайдингом вы наш?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class A
{
	private string _p;

	public virtual string P
	{
		get
		{
			return _p;
		}
		set
		{
			_p = value;
			RaisePropertyChanged("P");
		}
	}
}

public class B : A
{
	public override string P { get { return ""; }}
}


Я не против. Я спрашиваю, чем лучше или хуже вариант Сна - который через виртуальный метод.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625070
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanСон Веры Павловныuser7320,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class Class
{
  public virtual void Foo()
  {
    Console.WriteLine("Class.Foo");
  }
}

public class Derived1: Class
{
  public new void Foo()
  {
    Console.WriteLine("Derived1.Foo");
  }
}



а теперь попробуй создать класс Derived2 : Derived1, в котором оверрайдится Foo. Это раз.
Далее:
Код: c#
1.
2.
Class v = new Derived1();
v.Foo();


Вопрос: что будет в консольном выводе? И что будет в случае override? Вопрос на пятерку - объяснить различие консольных выводов.
ыыы это же вопрос на собеседовании сразу почему отличий реф и вал ))
Причём тут реф и вал?
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625072
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320netivanпропущено...

ыыы это же вопрос на собеседовании сразу почему отличий реф и вал ))
Причём тут реф и вал?Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению".
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625102
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,
вот еще разминка
без компила что будет?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(i + Add(ref i));
        }

        static int Add(ref int i)
        {
            return i++;
        }
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625129
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиuser7320,
вот еще разминка
без компила что будет?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(i + Add(ref i));
        }

        static int Add(ref int i)
        {
            return i++;
        }


Будет 2. Но это для задротов, которые зазубривают порядок выполнения бинарных операторов. Я вот в Сишарпе не знаю, а в С++ 99 сначала выполняется правое выражение, потом левое, а потом выполняется оператор сложения. Соответственно, сначала приращение до единицы, затем сумма двух единиц.

Не понимаю, нах такие вопросы задавать на собеседованиях. Всё равно когда кодишь, такие нюансы из головы вылетают. Или эти задавальщики вопросов на самом деле думают, что прогер каждый символ своего кода со всех сторон обсасывает? - "а что будет, если так?... а если этак?... а если в Андромеде сверхновая вспыхнет? - вдруг код упадёт?!". Да когда о проблеме предметной области думаешь, сраным синтаксисом меньше всего голова забита. Вот кодерам, которым дают только методы заполнять, а всю структуру приложения за них продумывают - этим да, только о синтаксисе и порядке выполнения операторов и думать. Они всё равно из процедурного программирования не вылазиют.

Ещё Луговский говорил, что тот, кто хорошо знает С++ (и С# туда же) - просто хорошая зубрилка.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625131
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAuser7320пропущено...

Причём тут реф и вал?Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению".
Это где такие говно-собеседования? Приходишь ты такой на собеседование. В ризюме у тебя такие-то проекты, такие-то ссылки на гитхабы там всякие, сайты, тобой сделанные. И вместо того, чтобы обсуждать с тобой твои проекты и что ты умеешь, тебе всякую куйню задают, в надежде на то, что какой-то нюансик ты да подзабыл. И тогда с гордым и сияющим видом 23-летний сеньор говорит тебе, что ты, мол, не подходишь - мало зубрил спецификации языка.
...
Рейтинг: 0 / 0
Переписать только геттер при наследовании
    #38625137
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320skyANAпропущено...
Он имел в виду, что это следующий вопрос на собеседовании после вопроса про "по ссылке" и "по значению".
Это где такие говно-собеседования? Приходишь ты такой на собеседование. В ризюме у тебя такие-то проекты, такие-то ссылки на гитхабы там всякие, сайты, тобой сделанные. И вместо того, чтобы обсуждать с тобой твои проекты и что ты умеешь, тебе всякую куйню задают, в надежде на то, что какой-то нюансик ты да подзабыл. И тогда с гордым и сияющим видом 23-летний сеньор говорит тебе, что ты, мол, не подходишь - мало зубрил спецификации языка.Чушь не неси. Понятно же что опытных людей так не собеседуют, а только junior-ов вроде тебя.
...
Рейтинг: 0 / 0
25 сообщений из 148, страница 3 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Переписать только геттер при наследовании
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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