@CSharpChatЭта группа больше не существует

Страница 1362 из 1888
Анатолий
29.06.2017
17:47:51
Но, главная магия в этом: List<Object> _objects = new List<Object>(); _objects.Add("Тест"); // Сработает _objects.Add(123); // Сработает, внезапно :)

Лолитка
29.06.2017
17:49:47
Хех, видимо мне рано ещё об этом задумываться)? Всё равно абсолютно ничего не понял, думаю проще уже всё равно не скажешь. впринципе на MSDN написано то же самое, но очень растянуто. Как писал Мураками: "если что-то не понятно сразу, то и объяснять бесполезно"
С их помощью ты просто можешь подставлять тип в свой класс или метод. Например, все чисельные кроме там совсем ебанутых децималов и тд - можно пихать в один метод без всяких приведений.

Alan
29.06.2017
17:53:42
bool Compare(int first, int second) { return first > second; } bool Compare(float first, float second) { return first > second; } bool Compare<T>(T first, T second) { return first > second; }
Видимо Мураками имеет очень точно сказать))) Всё равно абсолютно ничего не понял, но по-видимому это тоже синтаксический сахар, добавленный по принципу "просто чтоб было". По примеру я понял только то, что всё что может generic, можно сделать без него.

Google
Лолитка
29.06.2017
17:54:43
тебе придется больше методов делать

это уже не совсем сахар

да и местами без него вообще придется архитектурные узкие места перестраивать, хотя вот тут я тебе пример сходу не придумаю

Короче, у тебя есть сумма

Анатолий
29.06.2017
17:55:55
Позволяет работать с произвольными типами, сохраняя сторонки типизацию

Лолитка
29.06.2017
17:55:57
И допустим тебе нельзя приводить типы

Ты либо перегрузишь метод энное количество раз

Либо сделаешь его подстановочным

и сможешь дать внутрь любой из чисельных

К слову, я знаю как в джавке ограничить сверху/снизу типы для подстановке, а в шарпах как?

Анатолий
29.06.2017
17:57:31
А ещё можно использовать where... ммм, вкуснота, короче :)

Where T : IMyInterface

Anatoly
29.06.2017
17:58:47
Видимо Мураками имеет очень точно сказать))) Всё равно абсолютно ничего не понял, но по-видимому это тоже синтаксический сахар, добавленный по принципу "просто чтоб было". По примеру я понял только то, что всё что может generic, можно сделать без него.
Представь что у тебя есть метод. Который что-то делает. Ты его реализовываешь для какого-то типа. Проходит время. Тебе нужно реализовать точно такой метод, только для другого типа. Т.е. будет copy-paste, только типы поменяешь. Дженерики позволяют написать тебе реализацию один раз. И вместо типа указать какой-то неопределённый тип T. Который во время исполнения программы будет заменён на конкретный тип.

Google
Anatoly
29.06.2017
17:58:54
Я хз как ещё объяснить :)

Alan
29.06.2017
18:06:26
Вообще, чем глубже копаю, тем больше складывается ощущение, что С# состоит из ненужного функционала чуть менее, чем полностью. То, что без generic выйдет длиннее мне и так ясно) Почти всегда так и бывает, то же самое с return, get, set. Что угодно можно делать без них, но некоторым людям проще сделать код нечитаемым, чем длинным.

Лолитка
29.06.2017
18:07:03
Это он для тебя нечитаемым

А отстутствие дублирования - как раз метрика адекватности кода

Лолитка
29.06.2017
18:07:54
Опять таки, в адвансед штуках без него может и не обойдешься

это пока у тебя голый метод все хорошо

Лолитка
29.06.2017
18:08:31
а если тебе придется пихать, я не знаю, методы в какие-то делегаты

и чот там дальше

хреначить

то без этого тебе, вероятно, придется потратить куда больше времени

ты еще на лямбды поругайся

типа фу, нечитаемо

Gid
29.06.2017
18:09:36
Какие-то гет сет, нахуй оно надо все делать паблик статик))))00

Можно доступ быстро получить

Без экземпляра класса

Google
Gid
29.06.2017
18:09:58
Удобная разработка

Какие-то делегаты дженерики ивенты

Vlad
29.06.2017
18:10:19
Global variables

Лолитка
29.06.2017
18:10:20
Нет, ну он про то что методы аксесоры можно написать

Vladimir Bondaryuk
29.06.2017
18:10:35
А все классы это один но partial ?

Gid
29.06.2017
18:10:38
Как в жаве будет

Лолитка
29.06.2017
18:10:38
формально, работать будет

ага

Gid
29.06.2017
18:10:50
На каждый чих гет сет через методы

Лолитка
29.06.2017
18:11:48
Но тип, приоритеты шарпов джавок и прочего - это скорее скорость разработки, оттуда и ноги растут этого всего. И это дохрена удобно когда ты знаешь чо происходит. А если тебе не нужен сахар - можно писать на ассемблере.

Все то же самое - только медленно, зато понятно - пиздец

Лолитка
29.06.2017
18:12:19
Вот уж где читаемость кода

Кирилл
29.06.2017
18:12:59
Все равно в IL коде сводится к полям и методам

Летучая
29.06.2017
18:13:02
Делать лишнюю работу как делали в 90-ых

Кирилл
29.06.2017
18:13:38
Сарказм mode

Лолитка
29.06.2017
18:13:38
это все неважно

там пендосы на апач лазер повесили

Летучая
29.06.2017
18:13:50
Вообще да, не нужны паблик-статик программисты

Google
Alan
29.06.2017
18:31:01
Походу придётся уйти в процедурку)

Artemko
29.06.2017
18:32:22
Помнится, чувак сделал chatroulette целиком на Response.Write и поимел свои миллионы

Но не все ж такие мозговитые

Анатолий
29.06.2017
18:35:45
Сахар адски удобен тем, что позволяет разложить все по полочкам и лишает многих очевидных способов прострелить коленку, при этом добавляя несколько неочевидных.

Gid
29.06.2017
18:37:38
Как раз без работы будешь

Admin
ERROR: S client not available

Gid
29.06.2017
18:38:10
Отдыхать

А отдых это очень хорошо

Alan
29.06.2017
18:38:47
чувствую с дженериками я даж до поиска вакансий не дойду) XD

Анатолий
29.06.2017
18:42:27
чувствую с дженериками я даж до поиска вакансий не дойду) XD
А ещё в новом шарпе можно объявлять локальную переменную в выражении is

И case

К примеру if (a is string s) return s.Length();

и switch (x){ case string s: return s.Length(); case int i: return i+1; default: throw new WtfException(); }

Alan
29.06.2017
18:49:39
впринципе можно брать готовые примеры кода с generic, а потом в CIL смотреть как это работает на самом деле. В wiki сказано что в Visual Studio можно смотреть также intermediate код. Я так в 2014 году смог понять Console.Write, хотя даже для ООП наверное продвигаюсь очень медленно (учу C# с весны 2014)

pew
29.06.2017
18:51:16
...

Gid
29.06.2017
18:52:58
.....

С 2014 года

Gena
29.06.2017
18:56:15
А что было неясно в Console.Write ?)

Google
Лев
29.06.2017
18:58:12
?

pew
29.06.2017
18:59:18
ну вы щя чувака совсем засмущаете

Лев
29.06.2017
19:00:23
Может чувак просто троллит

Artem
29.06.2017
19:00:36
Alan
29.06.2017
19:01:18
ну сейчас 17. вообще хотел в 12 программирование начать, но тогда взялся за с++ и бросил, когда упёрся в "if"

Лев
29.06.2017
19:01:37
Он 100% троллит

Alan
29.06.2017
19:01:42
вообще сам с геймдева, но там больше leveldesign и 3D моделлированием занимался.

Влад
29.06.2017
19:01:54
Эээ.

Ухади.

"троллить" здесь - моя работа.

Alan
29.06.2017
19:02:45
ну я не знаю, 17 это рано или поздно

Alexander
29.06.2017
19:03:08
@pulkzerstorer Это нормально, большинство по такому же пути шли.

Влад
29.06.2017
19:03:29
Я в 12 игрался с Game Maker)(

Alexander
29.06.2017
19:03:45
Вообщем большая часть кто перешел на C# - тот кто не смог себя реализовать в нативной разработке.

Влад
29.06.2017
19:03:46
Я начал в 16.

*прошло 9 месяцев*

Страница 1362 из 1888

Эта группа больше не существует Эта группа больше не существует