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

Страница 72 из 1888
Meent
29.10.2016
19:46:22
а зачем? чего хочешь
private void create_MouseEnter(object sender, EventArgs e) { create.BackgroundImage = ButtonList.Images[1]; } private void create_MouseLeave(object sender, EventArgs e) { create.BackgroundImage = ButtonList.Images[0]; }

сократить до 1й)

Victor
29.10.2016
19:47:21
а нахера сокращать-то?

Летучая
29.10.2016
19:47:42
ну вообще

Google
Летучая
29.10.2016
19:47:48
typeof же

Victor
29.10.2016
19:47:52
ну можешь типа один метод сделать типа OnOff

Летучая
29.10.2016
19:48:33
return (e is MouseLeaveEventArgs) ? doFirst() : doSecond();

только эт будет тратить лишний ресурс на определение типа объекта )

Oleg
29.10.2016
19:53:52
return (e is MouseLeaveEventArgs) ? doFirst() : doSecond();
Немножко защитного программирования: лучше всё таки явно прописывать ожидаемые typeof даже в else case :)

Victor
29.10.2016
19:55:08
извращением попахивает и кроме того, путает код. оставить два метода и написать OnMouseEnter (..) {TurnOnOff(true)} и false соответственно, а в коде включения-выключения уже чудить как хочется

Летучая
29.10.2016
19:55:44
ну да и на понимание влияет обработчиков нажатий кнопок много не бывает :D

Victor
29.10.2016
19:56:01
попытка поломать систему и мозг людей, которые будут потом с этим работать

Oleg
29.10.2016
20:01:57
private не защищает?
тут в другом дело, код должен делать следующее - Если мышь навели - doFirst() Если мышь убрали - doSecond() если делать тернарный оператор или else без уточнения, то код сокращается до Если мышь навели - doFirst() Иначе - doSecond() Судя по коду этот метод в будущем может обрабатывать несколько событий (т.к. уже 2 обрабатывает), и при добавлении нового события будет выполняться doSecond(), что является багом. При использовании else if() такого не произойдет

Летучая
29.10.2016
20:03:06
Да, пожалуй ты прав.

Тернары хороши для truefalse значений

Welcome Bot
30.10.2016
07:58:01
Привет,morlord!Расскажи о себе.

Google
Welcome Bot
30.10.2016
07:58:25
Привет,Арефьев!Расскажи о себе.

Летучая
30.10.2016
08:31:12
/welcome@jh0ker_welcomebot

Welcome Bot
30.10.2016
08:31:13
Sorry, only the person who invited me can do that.

Rick
30.10.2016
15:19:03
ребята существует ли c# справочник лучше чем документация на MSDN?

Анатолий
30.10.2016
15:19:35
с юскейсами полная жопа

Rick
30.10.2016
15:20:21
мсдн - свалка стандартов
там индусы походу все писали =)

Анатолий
30.10.2016
15:20:28
хуже чем на мсдн можно послать только читать стандарты IEEE в оригинале

[Anonymous]
30.10.2016
15:21:13
нормально мсдн, там доступно объясняется суть той или иной функции/ключего слова/и хз ещё чо там

Анатолий
30.10.2016
15:21:17
если нужна инфа по прямому доступу (не последовательному) - рекомендую сразу гуглить. с большей вероятностью выкинет на пару страниц на стэковерфлоу с точно такой же проблемой

нормально мсдн, там доступно объясняется суть той или иной функции/ключего слова/и хз ещё чо там
очень много воды. для практического использования совершенно не нужной

для преподавания или изучения с нуля - может быть

[Anonymous]
30.10.2016
15:21:55
для преподавания или изучения с нуля - может быть
это да. но переделать можно. Главное понять суть:D

Анатолий
30.10.2016
15:21:56
но тогда лучше брать зарекомендовавших себя авторов

Анатолий
30.10.2016
15:24:41
каких именно? )
смотря что именно надо

дотнет - макдональд и шпушта

например

Google
Meent
30.10.2016
17:58:34
Вечера всем, помогите с ArrayList))

[Anonymous]
30.10.2016
17:58:54
выкладывай

Meent
30.10.2016
17:59:51
MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { UserOptions.Add(new { id = reader["id"], name = reader["name"], }); }

заполняю его так

из UserOptions[0] получаю такую вот каку: { id = 1, name = Dmitry }

как с этим работать как в AnotherLangName?

типо UserOptions[0].name

[Anonymous]
30.10.2016
18:02:41
сори, я не в теме:D

Meent
30.10.2016
18:02:57
Сейчас юзаю костыль: dynamic user_parse = JObject.Parse(JsonConvert.SerializeObject(UserOptions[0]));

Летучая
30.10.2016
18:03:33
Тебе нужно из одного языка в другой передать объект или что?

Meent
30.10.2016
18:03:36
Который переводит в Json и я могу спокойно юзать как user_parse.name

Летучая
30.10.2016
18:04:27
UserOptions.Add(new { id = reader["id"], name = reader["name"], }); А у тебя это компилируется?

Meent
30.10.2016
18:04:53
оно же тянет строки с базы и сунет его в массив

Летучая
30.10.2016
18:06:08
Анонимный тип, ясно

Вариант сделать его не анонимным есть?

Ну типа `struct MyNameId { public int id { get; set; } public string name { get; set; } } MySqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { UserOptions.Add(new MyNameId { id = reader["id"], name = reader["name"], }); }`

Летучая
30.10.2016
18:09:12
Ну потом у тебя будет сразу UserOptions[0].Id

Google
Летучая
30.10.2016
18:09:48
Поскольку в UserOptions[x] будет храниться твоя структура (struct) с этими полями.

Расход по памяти такой же будет. Вообще не очень жалую неявную типизацию )

test

Анатолий
30.10.2016
18:10:58
нет, как мне получить name из UserOptions[0] ?
UserOptions изначально сделать массивом элементов анонимного типа, содержащего поля id и name

Какой у тебя щас UserOptions?

Массив обджектов, нет?

Летучая
30.10.2016
18:12:35
из объекта можно как-то достать его поле, если компилятор не знает, что это за объект?

Admin
ERROR: S client not available

Анатолий
30.10.2016
18:13:00
Или скастовать

Не знаю точно

Анатолий
30.10.2016
18:13:28
Тогда приводить надо

Летучая
30.10.2016
18:13:31
Но тут в любом случае нужен исходный тип, определенный явно. Будь то стракт или класс.

Анатолий
30.10.2016
18:13:39
Или анонимный

Привести к анонимному можно прямо в рантайме

Компилятору плевать

Летучая
30.10.2016
18:13:58
dynamic ?

Почему в этой задаче принципиально использовать анонимные типы?

Анатолий
30.10.2016
18:14:41
Наверное и так, но я вроде встречал вариант без этого ключевого слова.

Google
Meent
30.10.2016
19:53:37
Как выловить, на какой функции идёт подтормаживание?

Анатолий
30.10.2016
19:57:09
dotTrace

включаешь профилирование, выбираешь процесс, останаливаешь сбор, снова стартуешь сбор (чтоб начисто), запускаешь код, останавливаешь сбор, смотришь что отпрофилировалось. жмёшь на сайдбаре на иконку с огоньком - сортируется по долготе исполнения

Анатолий
30.10.2016
20:24:31
ещё важны цифры сколько раз эта функция запускаласб

справа от неё должно быть

если она 100500 раз запускалась - то 193ms это в принципе не много, правда подозрительно большое число запусков )

Meent
30.10.2016
20:41:17
Хз почему, но зависание происходит только при первом подключении к БД

дальше всё норм

Oleg
30.10.2016
20:43:15
дальше всё норм
дальше используется созданное подключение скорее всего

Meent
30.10.2016
20:44:10
Можно засунуть соединение перед InitializeComponent(); но как сделать лучше?

Просто тогда будет зависать на пару сек при запуске)

Анатолий
30.10.2016
20:46:15
лучше всегда там, где пользователь всё равно стормозит, пока введёт что-нибудь

если же это очень приочень быстрый пользователь - то показать ему прелоадер :)

Meent
30.10.2016
20:46:54
?

Oleg
30.10.2016
20:47:06
не знаю что у тебя там за код, но если пользователю критично ждать то я бы попробовал асинхронное программирование

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

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