powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / VS 2008, WPF и визуальное наследование (окон, форм)
25 сообщений из 293, страница 10 из 12
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360417
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Крестик-нолик
Не надо мне ляля про 10 vs 1. Для меня это задача одна: сделать Nullable. Делается один раз,
потом забывается как...

путем написании 10 классов с идентичным кодом. ладно, твоя позиция ясна.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360433
chpashaпутем написании 10 классов с идентичным кодом. ладно, твоя позиция ясна.
Я уже объяснил. Написать один раз пусть даже 10-ть - это не проблема. Потому что один раз и забыли.
Было бы проблемой, если бы нужно было каждый день писать по 10-ть.

Вот это уже - да, это уже проблема.

P.S. Знаешь, я вот тоже таким страдал. Помниться в бытность писал какую-то лабудень (ну, чтобы можно было несколько Menu мержить в одно). Писал писал, целый день писал.
А потом осознал, через пять лет, что мне это понадобилось всего один раз в жизни.

Было обидно, да.

----

Кстати, а вот скажи (чет не припомню вот так сходу).

У вас есть конструкция вида... ну и возможность таких вещей:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TSomeClass =  class   of  TSome.

 function  A(Value: TClass): TObject;
 begin 
  Result := Value.Create;
 end ;

 var 
  D: TClass;
 begin 
  D :=  TSomeClass;
  A(D).AsString := 'Я люблю тебя, МСУ, такой какой ты есть, хоть ты и стукач';
 end ;

?

Если нет, то я начинаю понимать, на кой хрен вам впились генерики.

P.S. К своему стыду, чет не примпомню вот так слету... Ковырять MSDN леньки под вечер...
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360434
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нам не нужны дженерики. Мы готовы писать десятки одинаковых классов. Фтопку повторное использование кода. Зачем оно нам. Мы не боимся делать downcast-ы, даже не смотря на то, что у на unmanaged. Потому что мы экстремалы! Вот оно, настоящее экстремальное программирование!
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360439
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржем с бессмыслицы высокопарнойСледующий! (Пример)
"Слив засчитан".

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
using System;
using System.Collections.Generic;

namespace ConsoleApplication14
{
    class Program
    {
        static IEnumerable<T> Filtered<T>(IEnumerable<T> source, Predicate<T> condition)
        {
            foreach(T value in source)
                if(condition(value))
                    yield return value;
        }

        static void Main(string[] args)
        {
            List<double> doubles = new List<double>();
            for(int i = 0; i < 1000; ++i)
                doubles.Add(Math.Sqrt(i));

            foreach(double d in Filtered(doubles, IsEven))
                Console.WriteLine(d);
        }

        static bool IsEven(double d)
        {
            return d % 2.0 == 0.0;
        }
    }
}
Представь, что на месте double какой-нибудь хитровывернутый класс -- тебе надо на клиенте отобрать объекты, удовлетворяющие некоему условию. Например, клиентов, у которых был изменен номер телефона (чтоб отправить на сервер/в БД).
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360440
И че?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КНам не нужны дженерики. Мы готовы писать десятки одинаковых классов. Фтопку повторное использование кода. Зачем оно нам. Мы не боимся делать downcast-ы, даже не смотря на то, что у на unmanaged. Потому что мы экстремалы! Вот оно, настоящее экстремальное программирование!

Че сказать то хотел? Про людей, у которых туго с абстрагированием? Ну... есть такие, я даже
знаю живые ходячие примеры.

И что?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360447
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С надеждой на взаимопониманиеУ вас есть конструкция вида... ну и возможность таких вещей:

Код: plaintext
1.
2.
3.
 function  A(Value: TClass): TObject;
 begin 
  Result := Value.Create;
 end ;

?

Код: plaintext
1.
2.
3.
public T CreateInstance<T>() where T : new()
{
    return new T();
}
?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360451
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И че? Алексей КНам не нужны дженерики. Мы готовы писать десятки одинаковых классов. Фтопку повторное использование кода. Зачем оно нам. Мы не боимся делать downcast-ы, даже не смотря на то, что у на unmanaged. Потому что мы экстремалы! Вот оно, настоящее экстремальное программирование!

Че сказать то хотел?Выразил твою позицию своими словами. Скажи не так?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360456
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К С надеждой на взаимопониманиеУ вас есть конструкция вида... ну и возможность таких вещей:

Код: plaintext
1.
2.
3.
 function  A(Value: TClass): TObject;
 begin 
  Result := Value.Create;
 end ;

?

Код: plaintext
1.
2.
3.
public T CreateInstance<T>() where T : new()
{
    return new T();
}
?
Нет, скорее больше похоже на это:
Код: plaintext
1.
2.
3.
4.
5.
...
public object A(Type value) {
   return Activator.CreateInstance (value);
}
...
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360472
Нахлобуч Ржем с бессмыслицы высокопарнойСледующий! (Пример)
"Слив засчитан".

Тебе. Согласен.


Нахлобуч
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
using System;
using System.Collections.Generic;

namespace ConsoleApplication14
{
    class Program
    {
        static IEnumerable<T> Filtered<T>(IEnumerable<T> source, Predicate<T> condition)
        {
            foreach(T value in source)
                if(condition(value))
                    yield return value;
        }

        static void Main(string[] args)
        {
            List<double> doubles = new List<double>();
            for(int i = 0; i < 1000; ++i)
                doubles.Add(Math.Sqrt(i));

            foreach(double d in Filtered(doubles, IsEven))
                Console.WriteLine(d);
        }

        static bool IsEven(double d)
        {
            return d % 2.0 == 0.0;
        }
    }
}

Такой же бессмысленно беспощадный ответ на твой бессмысленный код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 var 
  I: integer;
  C: double;
 begin 
   for  I :=  0   to   1000   do 
   begin 
    C := Sqrt(I);
     if  Trunc(C)  mod   2  =  0   then 
      WriteLn(C);
   end ;
 end ;

Спрашивается, на кой хрен ты навалял той бессмысленности выше?
У кого проблемы? Зачем решать задачу максимально п...тым способом на 30 строк, когда там всего - 10-ть? И нафиг в этой задаче вообще впился List?


НахлобучПредставь, что на месте double какой-нибудь хитровывернутый класс -- тебе надо на клиенте отобрать объекты, удовлетворяющие некоему условию.
В данном случае - не представляю. Даже если представлю, то введу интерфейс IIsEven и не буду паритьс.

НахлобучНапример, клиентов, у которых был изменен номер телефона (чтоб отправить на сервер/в БД).
А это тут причем? Вообще какая то извращенная логика, честно. Клиентов, у которых изменен
номер телефона - я отловню SQL запросом (если буду хранить историю номеров).

Что-то блин, откровенно шизофренические примеры приводишь. Придумай что-то более реальное.

P.S. Тухло жжешь, без огонька. Неужели в реальной жизни генерики не юзаешь (не чужие, а свои?)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360481
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С надеждой на взаимопонимание chpashaпутем написании 10 классов с идентичным кодом. ладно, твоя позиция ясна.
Я уже объяснил. Написать один раз пусть даже 10-ть - это не проблема. Потому что один раз и забыли.
Было бы проблемой, если бы нужно было каждый день писать по 10-ть.
ладно, я с другой стороны зайду, если у тебя есть выбор, реализовать это по-твоему или по-нашему (с генериком), как напишешь, ну честно только?


З.Ы. про class references я уж подзабыл, да. если ты о создании в рантайме неизвестного на этапе компиляции инстанса, то да, лучше всего генериком (см new()), но можно и без (тогда класс Activator)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360482
qu-qu
Нет, скорее больше похоже на это:
Код: plaintext
1.
2.
3.
4.
5.
...
public object A(Type value) {
   return Activator.CreateInstance (value);
}
...


Угум. Ну так тем более, зачем генерики?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360484
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз есть, то есть qu-qu
Нет, скорее больше похоже на это:
Код: plaintext
1.
2.
3.
4.
5.
...
public object A(Type value) {
   return Activator.CreateInstance (value);
}
...


Угум. Ну так тем более, зачем генерики?Ну типа проверки типов на этапе компиляции. Сам ведь говорил что это важно.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360486
МимоШёл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз есть, то естьУгум. Ну так тем более, зачем генерики?
Люблю, когда об ошибках сообщает компилятор, а не клиентское приложение.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360492
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бессмыслим дальше?Такой же бессмысленно беспощадный ответ на твой бессмысленный код:
Вот этот твой беспощадный код -- он где? На форме, что ли?

И потом -- ты правда не видишь разницы между выделенным алгоритмом фильтрации произвольной коллекции по произвольному предикату и твоим хардкодом "от нуля до тыщщи"?

Бессмыслим дальше?В данном случае - не представляю. Даже если представлю, то введу интерфейс IIsEven и не буду паритьс.
И что, в связи со введением интерфейса будешь модифицировать функцию, осуществляющую фильтрацию?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360493
chpasha С надеждой на взаимопонимание chpashaпутем написании 10 классов с идентичным кодом. ладно, твоя позиция ясна.
Я уже объяснил. Написать один раз пусть даже 10-ть - это не проблема. Потому что один раз и забыли.
Было бы проблемой, если бы нужно было каждый день писать по 10-ть.
ладно, я с другой стороны зайду, если у тебя есть выбор, реализовать это по-твоему или по-нашему (с генериком), как напишешь, ну честно только?
Вообще в чужой огород со своим козлом не ходят.

Я бы делал так, как принято в местном дурдоме (просто из соображений... боязни правового нигилизма,
чтоли, ну ты понял, чтоб ...нки в стае не сильно пугались и не бросали в меня гнилыми <Фруктами>).


chpashaЗ.Ы. про class references я уж подзабыл, да. если ты о создании в рантайме неизвестного на этапе компиляции инстанса, то да, лучше всего генериком (см new()), но можно и без (тогда класс Activator)
Проехали.

В душе я бы выбрал Activator. Хотя конечно ржачный класс. Хотя вполне понятно, почему именно так.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360503
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз есть, то есть qu-qu
Нет, скорее больше похоже на это:
Код: plaintext
1.
2.
3.
4.
5.
...
public object A(Type value) {
   return Activator.CreateInstance (value);
}
...


Угум. Ну так тем более, зачем генерики?
даже чисто эстетически, зачем создавая объект приводить его к object, чтобы потом вернув его клиенту, тот опять кастил его в то, что ему надо. Если у нас сразу есть

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
public Т A(T value) {
   return Activator<T>.CreateInstance ();
}
...

т.е.

А(myClass).Value = "я пошел домой" 
//кстати, как получается, тот метод А у тебя возвращает TObject, a ты его не приводя сразу
//A(D).AsString
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360504
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про ассоциации.В душе я бы выбрал Activator.Это назло всему нашему сообществу?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360511
Про код
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нахлобуч Бессмыслим дальше?Такой же бессмысленно беспощадный ответ на твой бессмысленный код:
Вот этот твой беспощадный код -- он где? На форме, что ли?

И потом -- ты правда не видишь разницы между выделенным алгоритмом фильтрации произвольной коллекции по произвольному предикату и твоим хардкодом "от нуля до тыщщи"?
Вижу. Не вижу смысла в обеих примерах.

Ты вот что хотел сказать? Без понятия.

А я просто сделал то, что делает твой код более компактным, быстрым и менее ресурсоемким (нет
List-а) способом (поняв наконец, почему это .NET, хотя должен быть быстрее C++ в MM, на самом деле - безбожно тормозит: вы просто кодировать не умеете (разучились умному и простому старому,
научились глупому и сложному новому), т.е. ставите фантики (паттерны) превыше самой задачи,
вот и все, вот и весь ответ, вот и все, что нужно было доказать...).



Нахлобуч Бессмыслим дальше?В данном случае - не представляю. Даже если представлю, то введу интерфейс IIsEven и не буду паритьс.
И что, в связи со введением интерфейса будешь модифицировать функцию, осуществляющую фильтрацию?
Зачем? Класс под интерфейсом должен реализовывать функцию фильтрации. Как вариант.
Или возвращать то, что будет фильтроваться. К примеру тип double (в твоем случае).

И что?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360518
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про ассоциации.
Я бы делал так, как принято в местном дурдоме
ты ведешься на поводу у толпы? вот уж не подумал бы. Я так думаю, что следует понимать так - были бы генерики, а применение найдется. Даже у тебя, в кои то веки 1 класс вместо 10 напишешь, уже радость ;)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360527
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про ассоциации.... В душе я бы выбрал Activator...
Дык, почувствуй разницу:
Код: plaintext
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 {
    public void Hello () { Console.WriteLine ("Hello!"); }
}

public class B {
    public void GoodBye () { Console.WriteLine ("GoodBye!"); }
}

public class Program {
    public static void Main () { 
        object a1 = Activator.CreateInstance (typeof(A));
        object b1 = Activator.CreateInstance (typeof(B));
        // a1.Hello(); <- error
        // b1.GoodBye(); <- error

        A a2 = MyCoolGenericActivator<A>.CreateInstance ();
        B b2 = MyCoolGenericActivator<B>.CreateInstance ();
        a2.Hello(); // <- ok
        b2.GoodBye(); // <- ok
    }
}

...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360538
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про кодВижу. Не вижу смысла в обеих примерах.

Ты вот что хотел сказать? Без понятия.
Обалдел, что ли? Я тебя в сотый раз прошу доказать свой тезис о том, что генерики нафиг не кому не нужны просто переписав мой код на аналогичный по функциональности, но без собственно генериков.
Про код
менее ресурсоемким (нет List-а) способом
Потрясающе. Извне тебе данные в чем будут приходить? Кто-то услужливо будет по одному элементу тебе подсовывать? Или, быть может, тебе известна такая концепция как "итератор"?

А про производительность вообще речи не идет, так что мимо кассы.
Про код
поняв наконец, ...
было доказать...
Со словоблудием не сюда.
Про кодЗачем? Класс под интерфейсом должен реализовывать функцию фильтрации. Как вариант.
Или возвращать то, что будет фильтроваться. К примеру тип double (в твоем случае).

И что?
И то. Если у класса есть два метода фильтрации (IsEven и IsPowerOfSeven, например) -- ты их оба два будешь в контракт класса добавлять?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360540
chpasha Про ассоциации.
Я бы делал так, как принято в местном дурдоме
ты ведешься на поводу у толпы?
Да, я использую Object Pascal Style Guide и нотацию PL/SQL форматирования (находя первую
приемлимой, вторую - уродской).

Просто потому что так принято. Глупо пытаться говорить на эсператно, потому что тебе не нравится
английский. Не тек ли?

chpashaвот уж не подумал бы. Я так думаю, что следует понимать так - были бы генерики, а применение найдется. Даже у тебя, в кои то веки 1 класс вместо 10 напишешь, уже радость ;)
Не-а. Я не вижу им примерения.

Вижу только List<>. Потому что это даже не обсуждается. Это часть API. Но не могу придумать
задачу, которую я должен решить генериком. Честно.

Мне на 105% хватает class reference, interface и прочих средств, которые есть и у вас.

Потому и особо цинично ржачно. Я прошу привести реальный пример, где нужны генерики,
а вы мне, извиняюсь волосы из ж...пы МСУ (прошу не обижаться, это приступ эпатажа) выдергиваете,
приводя примеры из FCL или GOF/производных.

Да зачем?

Приводите свои примеры. Тех задач, в которых они (генерики) вам нужны.
Вон нахлобуч даже (тужась) набросал пример на поиск всех четных корней.
Было смешно, но он хоть постарался.

Может и правда они там сидят, и корни считают. Генериками. Тоже ничо так работа. Бывает.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360541
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё можно по ошибке активатору подсунуть класс, не имеющий конструктора по умолчанию. Ситуация вполне реальная. Если же реализовано через дженерик, компилятор выдаст ошибку.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360547
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА ещё можно по ошибке активатору подсунуть класс, не имеющий конструктора по умолчанию. Ситуация вполне реальная. Если же реализовано через дженерик, компилятор выдаст ошибку.А в делфи компилятор выполняет проверку на наличие конструктора?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35360563
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не выполняет...
...
Рейтинг: 0 / 0
25 сообщений из 293, страница 10 из 12
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / VS 2008, WPF и визуальное наследование (окон, форм)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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