Этого треда уже нет.
Это копия, сохраненная 11 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #992657
Можно кодить под микроконтроллеры на C#? Как это выглядит?
#3 #992680
Господа, подскажите, какой минимальный стек и на каком уровне нужно знать, что бы вкатится на джуна? Учу шарп + юнити, хочу в геймдев, но ради практических задач и команды пойду куда угодно.

Спасибо.
#4 #992683
>>992657
вангую, что нет. Зачем? У мк ограниченный ресурсы, а шарп, хоть и относительно быстрый, но всё же расточительный. Я уже молчу про размеры всех стандартных библиотек весом в полгига.
Да и нахуй он при программировании мк не нужен, вполне хватает Сишки.
993615
#5 #992685
>>992680

>юнити


бесполезно
992694
152 Кб, 850x950
#6 #992688
>>992654 (OP)
Я переделал кусок кода, но он мне все равно не нравится http://ideone.com/dyLv6K
Помогите что-то поменять.
#7 #992691
>>992680
c#, какие есть библиотеки в .net, как работает clr, (winforms, asp.net, wpf), ado.net, ооп, паттерны mvc mvp и какая-нибудь субд, скорее всего ms sql server
992696
#8 #992694
>>992685
1. Изучить шарп
2. Освоить юнити
3. Сделать лайтовый платформер под мобилки
4. Показать на собеседовании
...
5. PROFIT!

Где я проебался и почему не взлетит? Желательно с пояснением.
992695992758
#9 #992695
>>992694
взлетит
может не взлететь, если код лютое говно, а ты необучаемый долбоеб. так что обязательно пишешь в резюмехе: "ЛЕГКО ОБУЧАЕМ", жирным шрифтом, да побольше
162 Кб, 957x507
#10 #992696
>>992691
Благодарю.
#11 #992758
>>992694
потому, что юните очень специфичная хуйня, на неё джунов оочень редно берут.
992787
#12 #992767
>>992657
Если сможешь .net framework на него установить, то можно.
#13 #992787
>>992758
Не обязательно на должность юнити разраба. Это делается скорее для получения представления о разработке игр и создания портфолио.
#14 #992790
Анон, есть задачка под asp MVC -

>Application has to determine sitemap of requested URL, sends >requests


>to sitemap’s URLs and measure response time.


Я вот никак не могу понять как сайтмап стянуть с юрл.
inb4 - я только учусь и знаю основы (надеюсь что знаю)
992848
sage #15 #992799
>>992680

>>юнити


>>геймдев



Артём, прекрати
992812992826
#16 #992804
Раз уж речь зашла об играх, никто в простом проекте поучаствовать не хочет? Я неделю изучаю C#, как либу взял SFML, потому что до этого много работал с ней на С++, а Unity и XNA слишком тяжёлые. Проблема SFML только с клоунадой биндингов .NET -> C -> C++, из-за чего возникают проблемы со сборкой, а вообще либа простая и удобная.
#17 #992812
>>992799
Эти охуенные пояснения для нюфагов. Видишь же что у меня нет опыта и я не особо шарю, но нет, надо выебнутся на пустом месте, не приводя аргументов и не предлагая альтернатив. Если умный дохуя, подскажи как вкатится в геймдев.
992817992828
sage #18 #992817
>>992812

>>подскажи как вкатится в геймдев.


Сколько тебе лет?
992826992842
#19 #992826
>>992817
>>992799

>Сажа в тематике


Нихуя ты борцун.
992837
187 Кб, 1280x991
#20 #992828
>>992812
Если привлекает идея просто рисовать в окне спрайты и цветные фигуры, то SFML твой выбор, Unity это комбайн-конструктор игр мышкой для даунов. С основами могу помочь, я на этой либе в связке с Box2D целый движок делал.
992838992842
#21 #992837
>>992826
Извини
Чувствую себя сволочью
Ребёнка обидел
992842992844
#22 #992838
>>992828
Ты не понял
Он хочет батлу свою сделать
Штобы мышкой и штобы экшон был
992841992844
#23 #992841
>>992838
Аноны, не слушайте этого ебаната!
Я хочу танки толька с Т90 и Арматой
992844
#24 #992842
>>992817
>>992837
Я попал в /б или ты тут такой один? Говорю же, не шарю, спрашиваю совета, а ты тут со своими охуенно полезными советами флуд разводишь.
>>992828

>> Unity это комбайн-конструктор игр мышкой для даунов


Может быть, но для начала - сойдет, а там видно будет куда дальше двигать. Или есть альтернативные пути?
992845992872
#25 #992844
>>992837
>>992838
>>992841

>>Сделать лайтовый платформер под мобилки


>>Что бы было что показать на собеседовании



>>Он хочет батлу свою сделать


>>Я хочу танки толька с Т90 и Арматой



Ну да, точно /б. Обсаженный семен.
#26 #992845
>>992842

>Или есть альтернативные пути?


Лично для тебя - нет.
#27 #992848
Ну-же, сеньёры, помогите. Достаточно чекать sitemap.xml и robots.txt или может нужно ручками генерить сайтмап на сервисах? Задачка на собеседование, нужно сделать страничку с текстбоксом, в него пишешь юрл, и приложение по сайтмапу проверяет отклик всех страниц и сортирует по самому длинному отклику. Может кто поможет хотя-бы с примерное реализацией? Проблема как найти и обработать сайтмап.
>>992790
#28 #992870
Где почитать/посмотреть про реализацию модульности в проекте? Хотелось бы разобраться, как это создаётся: есть одна базовая программа, но при желании к ней присоединяются модули (плагины?), а потом отключаются.
992931992938
sage #29 #992872
>>992842

>>Или есть альтернативные пути?


В ВУЗ поступи
К концу магистратуры верстальщиком станешь
#30 #992896
Что в стрингах значит @ перед кавычками? Вроде того
string str = @"хуета";

И почему часть имен называют с нижним подчеркиванием перед названием переменной? Вроде
_name
992903992905
#31 #992903
>>992896

>@ перед кавычками


игнорирование спецальных символов

>нижним подчеркиванием перед названием переменной


чтобы не путать локальные переменные с полями класса. один раз 2 дня дебажил прогу, а оказалось, что моя строка в конструкторе создает новую переменную вместо того, чтобы приравнивать значение уже существующей.
#32 #992905
>>992896
@ говорит что строка должна быть в UTF8.
_ сохраняет имя переменной в байткоде чтобы к ней можно было получить доступ из другого языка.
992923993620
17 Кб, 400x400
#33 #992915
В треде есть кто-то разбирающийся в MVVM с WPF?
992931
#34 #992923
>>992905
дядя, ты дурак?
#35 #992928
Допустим есть пустой список объектов List<Book> с двумя полями Title и Author. И допустим есть список текстовых названий книг List<string>. Как мне присвоить списку книг список названий с пустым вторым полем? То есть, автоматизировать вторую строчку без цикла:

List<string> Titles= new List<string>(new string[] { "title1", "title2", "title3" });
List<Book> Books = new List<Book>{new Book{Title = Titles[0], Author = string.Empty}, new Book{Title = Titles[1], Author = string.Empty}, 'и тд.'};
992931
#36 #992931
>>992870
mef

>>992915
мог бы просто задать вопрос

>>992928
titles.Select(s=>new Book{Name=s}).ToList()
992932993023
#37 #992932
>>992931

>titles.Select(s=>new Book{Name=s}).ToList()


Это тот самый linq? Если да, то учить обязательно, если я вкатываюсь в шарп? Просто я даже не понимаю, что эта штука должна возвращать и должна ли вообще возвращать что-то.
992934992935992943
#38 #992934
>>992932

> обязательно


да
992936
#39 #992935
>>992932
Это линк. Учить обязательно. Почти все LINQ выражения возвращают IEnumerable<T> - интерфейс, который имплементируют чуть менее чем все коллекции.
#40 #992936
>>992934
Ок, ушел учить. Но все равно, не мог бы ты подсказать, что и как твоя конструкция возвращает? Я догадываюсь, что select выбирает все значения из списка titles, а дальше хуй пойми что. Можешь написать целую рабочую строку кода для моего случая?
992949
#41 #992938
>>992870

>Хотелось бы разобраться, как это создаётся: есть одна базовая программа, но при желании к ней присоединяются модули (плагины?), а потом отключаются.


Посмотри в сторону динамической загрузки сборок.
В крации, определяешь в своей программе интерфейсы плагинов, потом при загрузге базовой программы пытаешься загрузить все дллки по некоторому пути и с помощью рефлексии найти в них все классы реализующие нужные тебе интерфейсы. Это и будут плагины, причем они могут тянуть свои классы в сборке для реализации функциональности о которойй твоя прога даже не дагадывается.
Сборки грузятся в отдельном домен приожения - для отлючения связаных с ними плагнинов нужно либо совсем выгрузить домен либо свою рестартануть программу.
#42 #992943
>>992932

>то учить обязательно


Да, понимать обязан. Только не используй его. Крути дедовские форы в своих объектах выборки и не еби магией замыканий никому мозг. Линк - ебаный рак богоподобного шарпа
#43 #992949
>>992936
просто загляни в исходники. там у метода Select три строчки, исключая проверки
992950
#44 #992950
>>992949
Я пока сижу в туториалах по линку, но пока я доберусь до понимания всего этого, пройдет какое-то время. Поэтому я прошу сейчас написать мне правильный линк запрос на создание правильного объекта List<Book> Books
#45 #992953
>>992943

>Линк - ебаный рак богоподобного шарпа


Кто рак, ты рак ёпт.
992968
#46 #992968
>>992953
Нет ты, линкомартыха.
Подчищай потом за тобой стрелочки распиханые по пропертям, дефолтным конструкторам, небу и даже Аллаху.
992970
#47 #992970
>>992943
>>992968
Ну напиши, как это сделать циклом
https://dotnetfiddle.net/Widget/kxrLwJ
992980
14 Кб, 833x653
#48 #992980
>>992970
Код без раковой хуйни понятен даже недельному нюфагу.
992981992984993103
#49 #992981
>>992980
Щас бы конструктор ебануть, когда его не было!
992986
#50 #992984
>>992980
Спасибо. Поясни, почему ты убрал сеттеры? Ну и конструктор зачем тут нужен, да?
992997
#51 #992986
>>992981
Чистота интерфейса, ничего не поделаешь. Только доступные конструктора говорят как можно нормально получить гарантировано работоспособный валидный объект.

Твоя хуйня выше очень хрупка, если ты в один прекрасный момент решишь, что с авторами не могут работать все подряд, а только через твой IRusAutorUnion. Измение нужно будет внести только в конструктор, а не во всю стрелочную хуйню раскиданую по всей программе.
993000993008
#52 #992997
>>992984

>Поясни, почему ты убрал сеттеры?


Потому что они мне не нужны в этой короткой программе. Вот пока они не нужны НЕ ДОБАВЛЯЙ ИХ, как станут нужны, так сразу добавишь.

>Ну и конструктор зачем тут нужен, да?


Потому что у тебя специальное условие для создания нормальной книги.

Booк B = new Book(); // это еще не валидная книга, у нее нет ни названия ни автора. Она полностью сломает твою программу.
B.Title = "Some Title"; // только теперь она валидна.

Суть конструкторов, что после них объекты должны работоспособные без всяких доопределений, про которые легко забыть.

Booк B = new Book("Some Title"); // полностью валидный обект готовый к работе
993000993008
#53 #993000
>>992986
>>992997
Не лучше ли сделать более универсальный вариант https://dotnetfiddle.net/Widget/dtPPiD ?
993009998946
#54 #993005
Анон, подскажи, как из одного метода вернуть несколько значений?
#55 #993006
>>993005
Массив или костылями. Можешь еще глобальные переменные объявить и тогда метод сделать void.
993021
22 Кб, 982x578
#56 #993008
>>992997
>>992986
Я тут попробовал упороться в жопу и мне понравилось. Доктор, я теперь пидор?
#57 #993009
>>993005
Через ref/out параметры можно, но это говорит о том, что ты делаешь что-то не так.
В общем случае нужно возвращать экземпляр класса.

>>993000
Норм.
29 Кб, 981x576
#58 #993018
Короче, я решил пойти на компромисс и ради изучения линка оставлю именно линк, но уже с инкапсуляцией и конструктором. Благодарю за помощь.
#59 #993021
>>993006

>Можешь еще глобальные переменные объявить и тогда метод сделать void



Можешь по подробней, пожалуйста?
https://pastebin.com/6BHZVBPe
Как мне этих 2 значения вынести, просто я еще туплю с ключами доступа и т.п.
#60 #993023
>>992931

>мог бы просто задать вопрос


Задаю. Есть файл с view, есть файл с viewmodel который с ним связан. В гайдах говорят, что для каждого значения с формы во viewmodel нужно создавать проперти для биндинга, а для каждого ивента с формы нужны создавать комманду тоже для биндинга. А где и как мне тогда писать основную логику программы? Например при ее загрузке мне нужно из файлы вытащить инфу, где прописывать соответствующие методы?
993085993120
#61 #993030
Ору с этого SQL прямо в коде
List<Book> Books = (from s in Titles select new Book(s, string.Empty)).ToList();
#62 #993073
Ебать конечно этот MVVM сплошной ходячий костыль.
#63 #993085
>>993023

>А где и как мне тогда писать основную логику программы?


в main windows?
993086
#64 #993086
>>993085
Лучше бы сразу сказал, что не знаешь сути паттерна.
#65 #993094
Посоны, а что на сишарпе вообще пишут? Весь фриланс на. NET?
Пока для юнити изучаю, но язык нравится.
993097
#66 #993097
>>993094
Все, вопрос закрыт.
Большинство фриланса - уеб, ну ладно.
#67 #993103
>>992980
за фор в коде я бы пенис отрывал.
994022
781 Кб, 371x209
62 Кб, 311x216
80 Кб, 800x475
73 Кб, 300x256
#68 #993110
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#69 #993111
Разве шарп может применятся в ентерпрайзе, если в исходники любой программы можно посмотреть двумя кликами?
993113
#70 #993113
>>993111
Справедливости ради, на Жаббе так всегда было можно, гугли java дизассемблер.
#71 #993118
#72 #993120
>>993023
Загружай в той вьюмоделе, в которой эти данные будешь использовать. Можно для этого отдельный класс выделить или метод, смотря какие данные.
993122
42 Кб, 800x300
#73 #993122
>>993120

>Загружай в той вьюмоделе


Тогда это выходит не MVVM, а VVM, поскольку ты предлагаешь избавиться от модели и грузить всю логику во вьюмодель. А теперь представь, что у меня есть пара методов с расчетами на 500 строк, которые ко вьюмодели никакого отношения не имеют.

Короче, я делаю сейчас по-другому. В солюшне будет два проекта, один обычный WPF, а второй библиотека, которую я буду подключать к обычному. Я такое видел даже в одном видео.
993140
#74 #993137
>>992680
Вот кстати тоже юнити + шарп, только вкатился в команду юнити-разработчиков именно чтобы выучить C# он у меня со следующего курса в шараге начинается и мне пиздос без этого
7 Кб, 363x179
8 Кб, 451x122
2 Кб, 304x116
#75 #993140
>>993122

>а второй библиотека, которую я буду подключать к обычному


Все-таки я обосрался на этом пункте. В референсах добавил проект-библиотеку, в код добавил using VtoroiProjectBleat; но не могу достать до метода doNothing() из второго проекта, первый его просто не видит. Хотя сам класс видит.

Что не так?
993143
#76 #993143
>>993140
Ты статик метод пытаешься вызвать. Тебе инстанс класса нужен.
993144
#77 #993144
>>993143
Эм... А если мне не нужен инстанс класса? Я просто хочу библиотеку.
993145993146
#78 #993145
>>993144
Подумой! Подумой, что ты написал!
993148
#79 #993146
>>993144
Сделай свой метод паблик статик инт.
993148
#80 #993148
>>993146
Вот тебе два чая, все заработало.

>>993145
Что не так?
#81 #993223
>>992943
Жалко, мне линк начинал нравиться, а если вместо лямбд использовать методы, то норм? Там же просто делегаты, не обязательно использовать всякое анонимное говно.
993644993652993680
#82 #993237
Как добавить свойства к sealed классу?

sealed class Rect {
public Left;
public Rght;
}

знаю что можно сделать

static class ExtendedRect {
public static GetRight(this Rect rect) { ... }
}

но получается что методы мешаются со свойстами, это говно какое-то
993238
#83 #993238
>>993237
То есть
public Left;
public Top;
в оригинальном классе, хотелось бы добавить Right и Bottom
993264
#84 #993264
>>993238
Сделай класс-обёртку.
1 Кб, 117x88
#85 #993288
>>992654 (OP)
Иногда вместо всех изображений появляется это. С чем оно связано?
997666
#86 #993462
Как объявить список объектов определенного размера?
List<Object[]> Objects = new List<Object[SIZE]>; не работает.
993466
#87 #993466
>>993462
Вопрос снимается.
List<Object>[] Objects = new List<Object>[10];
993475
#88 #993475
>>993466

>массив листов


Ну ты и садо-мазо
993477
#89 #993477
>>993475
На самом деле там массив Task, но синтаксис одинаковый и чтобы не пугать никого тасками я написал лист.
993479
#90 #993479
>>993477

>не пугать никого


нашёл чем пугать)
#91 #993482
>>992943 Да пошел ты нахер, клоун. Я за такими олдфагами потом код на 3/4 сокращаю божественным линком.
993487
#92 #993487
>>993482
Линк охуенен, подтверждаю. А тот петян-неосилятор может пройти нахуй.
#93 #993510
Смотрю курс по шарпу, там чувак байтоебит, скажите, в шарпе байтоебство что ли практикуется?
993518
#94 #993518
>>993510
Как байтоёбит? Двигает биты и XOR AND OR их?
993519
#95 #993519
>>993518
Ага
993521
#96 #993520
Я запутался в ООП, че делать, как его понять?
993522
#97 #993521
>>993519
Такое "байтоёбство" везде практикуется, хотя бы флаги ты как собираешься реализовывать? Массивами булей? Алсо всякие шифрования, упаковки и хэшкоды их активно используют, это не байтоёбство.
993523
#98 #993522
>>993520
Что именно не ясно?
#99 #993523
>>993521
Спосибо, я нюфаг.
#100 #993526
Оказывается в любом NET.Framework есть компилятор C# и VB.NET.
993529
#101 #993529
>>993526
Так вроде давно уже есть, года так с 2010
993561
361 Кб, 2000x1700
#102 #993535
Можно ли писать на Си Шарп незаметные для антиширусов ширусы и трояны?
Или надо какое нибудь низкоуровневое говно учить?
993537994462
#103 #993537
>>993535
А при чём тут языки, если антивирусы отслеживают поведение?
993539
#104 #993539
>>993537
У кулхацкеров какие то свои патерны по маскировке поведения?
993540993543
#105 #993540
>>993539
Я не хацкер, по этому не скажу как они обходят, возьми несколько каких нибудь популярных отрытых антивируса и смотри документацию по их работе, какие алгоритмы они используют для выявления вирусов.
993546
#106 #993543
>>993539
Либо сразу в бой рвись :)
Установи ВС, набросай простой винлок, червя-пидора, етц, поставь антивирус и смотри на что он будет ругаться, пытайся маняврировать. Но это так себе путь. Энивей, с поверхностными знаниями обойти сможешь только себе же за щеку, так что подумой, хочешь ли погружаться в это дерьмо с головой, либо дальше скроль мемы. Быть кулхацкером = много знать.
993546
#107 #993546
>>993540
Это имеет смысл.

>>993543
Просто подумолось написать какой нибудь эксплойт. Но книг, гайдов или манов, кроме сайтов дудос школьников, видимо не найти.
993552
#108 #993552
>>993546
>эксплойт
значение знаешь?

Без представления как это всё работает ты нихуя не сделаешь. Максимум - скопипастишь с кул-хацк форума ЗИРОДЕЙЭКСЛОЕТ-zverCDultimate- и соснешь, короче, хакер, качай книги или смотри туторы, получай знания, опыт и только после того, как овладеешь мейнстримом имеет смысл пытаться кулхакать.
993556
#109 #993556
>>993552
Понятно.
#110 #993558

>Просто подумолось написать какой нибудь эксплойт.


То есть, с нихуя, с нулевым багажом знаний тебе захотелось эксплойт взять и написать? Почему эксплоит?)))))))))))))))))))
993562
#111 #993561
>>993529
Я просто дитя 90-х и привык к тому, что в голой винде (Windows 2000 или XP например) можно только писать скрипты на VBScript и JScript и это вам не сборки линуксов с GCC.

А тут внезапно оказывается, что с каждым фрейморком по консольному компилятору Си Шарпа идёт, а насколько я помню .Нет фрнймворк уже начиная с Висты идёт в комплекте.
#112 #993562
>>993558
Да я просто подумол о флешке у которой в автозапуске будет простенькая прожка - флешка вставляется, открывает порт, ставится какой нибудь радмин или костыль для удаленного доступа, с флешки самоудаляется ширус.
Типа дал кому то музыку переписать - а потом можно зайти по удаленке и посмотреть на что он дрочит.
Я думал это что то на уровне продвинутого школохакерцства, но видимо нет.
993565
18 Кб, 1001x576
#113 #993564
Немного тупой вопрос, но мне кажется это важно.
Вообщем, разбираюсь с паттерном MVP.
Делаю простенький МП3 плеер.
и кароче я использую функцию Опен Файл Диалог для получения аадреча аудио.
Ну и вопрос в том, реализовываться, по канонам паттерна MVP он должен во вью, или в презентере?
Просто сам ОФД находится в пространстве имен System.Windows.Forms и я не уверен должно ли оно быть в презентере.
#114 #993565
>>993562
Авторан вируса с флешки, серьезно? Это даже не 2007. Мда, долго же ты "гулял". Повторю, если хочешь в это дерьмо влезть, придется с начала начать и постигать мейнстрим, только после него уже задавай вопросы про хэккинк.
993566993579
#115 #993566
>>993565
Ладно.
993567
#116 #993567
>>993566
Что тебе мешает заглянуть в шапку и скачать книгу? Давай, я в тебя верю (нет). Сам в себя верь и не ной.
993570
#117 #993569
Как грамотно загружать исхожники на Гит?
В смысле как понимаю все студийные свистоперделки лучше оставить за бортом, оставив только кэсики с исходниками?
993593994040
#118 #993570
>>993567
Но я давно скочал.
И даже говнокодю оп ним.
Я просто спросил.
993574
#119 #993574
>>993570
Как давно ты начал?
993578
#120 #993577
Стоит ли делать отдельный класс, если объект планируется только один?
993980994011
#121 #993578
>>993574
Недавно.
#122 #993579
>>993565
Ну если ЦА вируса - неграмотная отара небольшого размера, которую пасет один энекей на полставки, то вполне возможно.
Всякие "шифровщики" флешек на VBA вполне живут, потому что поведение слишком примитивное для антивируса.
#123 #993580
Господа, поясните за разницу между классом и структурой. Когда что юзать?
994468
274 Кб, 451x800
#124 #993589
Вы напомнили мне об одной моей идиотской идее
Используем указатели
Пихаем их в условно-бесконечный цикл-пока место в озу не закончится
???
ПРОФИТ!

Идея бесконечно тупая и забавная, как по мне.
993591
#125 #993591
>>993589
Можешь еще открывать лоток CD.
993594
#126 #993593
>>993569
в .gitignore должно быть как минимум следующее:
YourProject/bin/
YourProject/obj/
YourProject/packages/
Для каждого проекта в солюшене

YourSolution/.vs
и для всего солюшена

Остальное - по необходимости.
Файл .gitignore находится в корне git репозитория и определяют игнорируемые директории. Можно прям ручками поправить и твоя git утилита подхватит его.
#127 #993594
>>993591
У кого-то он еще есть?
#128 #993613
Посмотри в сторону mono llvm
john #129 #993615
>>992683
Посмотри в сторону mono llvm
>>992657
#130 #993620
>>992905
толсто)
331 Кб, 720x711
#131 #993629
А мне вот интересно
У меня есть пердуинка, например
Можно как-то реализовать, чтобы подключая пердуину, при нажатии кнопки на форме начал мигать подключённый к пердуине светодиод, например?
993630
#132 #993630
>>993629
Конечно.
#133 #993644
>>993223
Не слушай поехавшего старпера, используй все фичи языка.
#134 #993652
>>993223
Совет не использовать линк сродни совету не использовать проперти.
#135 #993680
>>993223
Этот просто старпёр легаси говна переел и с катушек поехал.
183 Кб, 1080x1245
Ну помогите код сократить, знатоки #136 #993702
993731
#137 #993707
Что делает =>? Зачем оно надо?
993708993709
#138 #993708
>>993707
Более читаемая форма запятой.
#139 #993709
>>993707
Гугли "c# лямбда".
#140 #993731
>>993702
Никогда не смотри в сторону Any() или Take() или любой другой Linq функции. Тру посоны используют фор.
993733993818
#141 #993733
>>993731
Ты лучше на пиздец в ifе посмотри
993780
#142 #993750
Есть способ не писать все инклуды в каждом файле?
Пробовал писать внутри неймспейса в одном файле - в других файлах с тем же неймспейсом этих импортов не видно
993783
#143 #993752
Ребят, дайте простой пример зачем нужны флаги, пожалуйста.
#144 #993780
>>993733
извини, тег сарказм отклеился.
#145 #993783
>>993750
В шарпе нет инклюдов, есть юзинги. Есть действенный способ - SOLID, в частности буква S оттуда. Перестаешь писать говнокод - в фаилах остается дай бог 5-6 юзингов.
#146 #993815
Как принято инициировать объекты в полях? Писать прямо в классе private Object yoba = new Yoba() или переносить new в конструктор?
#147 #993818
>>993731 Съеби уже отсюда.
#148 #993830
Анон, как из метода вернуть весь массив а не только один его элемент?

int[] ch = new int[2];
ch[0] = 2;
ch[1] = 1;

return ch; //Не удалось int в int[]
return ch[] // требуется значение
993833
#149 #993833
>>993830
for(int i = 0; i < ch.Length; i++
{
return ch;
}
Мб так?
993835993840
2 Кб, 277x123
#150 #993835
>>993833
фикс
993846996898
#151 #993840
>>993833
ебать ты долбаеб что по твоему делает return???
#152 #993846
>>993835
Вся проблема была в том, что я когда создавал метод я забыл указать, что он int[], а написал только int
993849
#153 #993849
>>993846
Иди нахуй, пёс.
993854
#154 #993854
>>993849
Нахуй ты обиделся?
#155 #993859
Есть одна windows-форма Settings
На форме есть ползунок, пользователь в нем задает размер дочерней формы, ну это неважно
Значение из ползунка заносится в переменную public int x { get; set; }
Еще простой класс Logic.cs
Как мне оттуда к этому иксу обращаться?
Как из одной формы к другой обратиться - понятно, а че делать с классом?
+ этот класс Logic.cs еще должен полученную переменную передать в windows-форму Game
994032
#156 #993885
Как вы превозмогаете учебу?
Я вот учу-учу и уже кажется что сколько можно учить, что всё сложно и понимаешь, что впереди еще столько же, если не больше и руки опускаются. Как не выйти из колеи? Как продолжать учить и не думать о том, сколько еще впереди?
993886994024
#157 #993886
>>993885
---> /se
на крайняк /psy
#158 #993888
>>993005
Только Tuple.
993972
#159 #993889
>>992654 (OP)
Чем C# лучше хаскеля?
993921
#160 #993900
Вечер в хату. Есть табличка с ~60 колонками, колонки имеют разный тип, первая инт, вторая стринг и тд. И мне нужно в шарпе как-то сохранить строку из этой таблички, т.е. где-то сохранить все 60 колонок. В пхп я делал for по колонкам и сохранял все значения в один массив (пхп массив может хранить разные типы в одном), как мне сделать то же самое в шарпе? Создавать 60 переменных?
#161 #993905
>>993900
Да, через проперти. 60 переменных.
993909
#162 #993906
>>993900
Object[]
993909
#163 #993909
>>993905

>60 переменных


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

>>993906
Поясни, плиз. Предлагаешь создать 60 классов под каждую колонку? Или один класс таблицы с 60 проперти?
993914993915
#164 #993914
>>993909
Все классы в сисярпе наследуются от Object, соответственно туда можно сохранять все что хочешь. Как вариант еще можно использовать dynamic.
#165 #993915
>>993909
Для тупых: пихаешь всё в обжект, и/или юзаешь на каждом ToString()
993919
#166 #993919
>>993915
Хм, мне нравится второй вариант, все равно всё потом пойдёт в базу данных. Благодарю.
997671
#167 #993921
>>993889 Больше вакансий.
#168 #993972
>>993888
Двачую
#169 #993980
>>993577
А что у тебя в классе должно быть?
#170 #993988
Есть строка с датой и временем "2017-05-01 10:31 UTC". Как ее распарсить в DateTime? Просто Convert.ToDateTime или DateTime.Parse падают.
994019994101
#171 #993990
>>993900

>В пхп я делал for по колонкам и сохранял все значения в один массив (пхп массив может хранить разные типы в одном), как мне сделать то же самое в шарпе?


ArrayList твой друг
#172 #994001
Нельзя сделать
class A {
operator B() { return new B() }
}

B x = new A()

?
994016
122 Кб, 1366x768
#174 #994013
Только начал изучать шарп и хочу узнать, что я сделал не так и почему. Может есть какие-то советы по написанию, просто мне почему-то кажется, что я сделал что-то через жопу
Например проверку дискриминанта
Создал новый класс, только для того, чтобы понять как это работает
994014
37 Кб, 1097x411
#175 #994014
>>994013
Не тот скрин
994021
#176 #994016
>>994001
С типами полный пиздец в общем..
Нельзя наследовать структуру, делаю обёртку, но каждый раз нужно делать new,

то есть вместо
return yoba.Position
нужно
return new MyVector2(yoba.Position)

а вместо
yoba.Position = new Vector2(1, 2)
нужно
yoba.Position = myVecto2.BaseVector2 // пришлось сделать базовый объект public

а можно было просто наследовать структуру и добавить пару методов как в С++
994050
#177 #994019
>>993988
Regex и new DateTime
994090
#178 #994021
>>994014
Юзай не Парс, а ТрайПарс.
994132
#179 #994022
>>993103
Да ты охуел.
for быстрее foreach работает почти в два раза
sage #180 #994023
Господи, ну что за дауны со мной в треде сидят? То LINQ у них не нужен, то структуры у них не наследуются, охуеть просто.
#181 #994024
>>993885
Учи пока можешь
Вот я устроился на работку и нихуя нового не узнал, только научился разбираться в древнем коде без документации, а времени учить что-то нового нету.
#182 #994032
>>993859

> а че делать с классом


а что с ним делать? Сделай static поле.
#183 #994037
Как накатить сишарп на последний Visual Studio?
#185 #994042
Надо спарсить страничку продукта с али. Проблема в том, что информация о доставке загружается яваскриптом, при этом, возможно аяксом, так как блок с ней появляется где-то на 0.5-1 сек позже, чем загрузилась страничка.
Англ шарп это не берёт. Пишу вот так, но элемент с доставкой остаётся пустым. Кроме того, не уверен, грузит ли он экстернальные скрипты.
HtmlParser parser = new HtmlParser(Configuration.Default.WithJavaScript().WithDefaultLoader());
var document = parser.Parse(html);

Знает кто, как и чем это можно решить?
994065994083
#186 #994050
>>994016
Так и делай как в с++, сделай класс с открытыми полями, концепции стракта в с++ и в сишарпе совершенно разные, в первом это просто класс с открытыми полями, а второе это объект с которым сишарп работает по-особенному.
994051994081
#187 #994051
>>994050

>открытыми членами


конечно же
#188 #994065
>>994042
Открываешь консоль браузера/скачиваешь burpsuite. Смотришь лог запросов-ответов к серверу. Думаешь.
А вообще у алика есть свой api
#189 #994081
>>994050
Не понял, можешь пример показать?
https://dotnetfiddle.net/mdivBz
994084
#190 #994083
>>994042
Я сам с таким не сталкивался, но возможно эта штука поможет
https://www.nuget.org/packages/AngleSharp.Scripting.JavaScript/
#191 #994084
>>994081
Менять базовую структуру я не могу, она в библиотеке, таких структур там несколько и использовать их без дополнительных методов ужасно неудобно. Можно добавить расширяющие методы но тогда получается что их приходится мешать со свойствами, например войство Left и метод GetRight()
994113
26 Кб, 821x74
#192 #994090
>>994019

>new DateTime


Спасибо за идею, анончик. Оно выдает ожидаемый результат. :)
#194 #994113
>>994084
Если нельзя переписывать, тогда как тебе говорили делай обёртку, и да она не будет соответствовать интерфейсу вектора, но это же вроде соответствует одному из принципов солид, типо всё равно систему будешь строить из интерфейсов своего вектора, да и если что можешь сделать ему свойство ExVector.Vector
#195 #994130
Вопрос из книги Лафоре, вы тут больше ООП занимаетесь, поэтому спрашиваю, какой из ответов правильный?
16.Назначение наследования состоит в том, чтобы?
a) создавать более общие классы в более специализированных
b) добавлять возможности к существующим классам без их модификации
994131
#196 #994131
>>994130
Ты, чо, дурак? Оба - неправильные. Но второй вернее, в общем и целом, да. Наследование помогает сделать тебе класс, добавить туда нужные свойства и методы, на основе имеющегося класса. Это позволяет поддерживать нормальный уровень абстракции.
#197 #994132
>>994021
А в остальном?
#198 #994133
Анон, есть какая-нибудь книга по алгоритмам, примеры в которой были бы реализованы на шарпе? Я просто не могу ничего понять без нормальных примеров. На жабе есть здоровенный курс от стенфорда вроде, но в жабоговно лезть не хочу, там тем более такой пиздец, что ну его нахуй. Есть что-нибудь приемлемое на шарпе или придется в ебаном псевдокоде ковыряться?
994179
#199 #994179
>>994133
Шапку читай, сука!
994186
Как обработать исключение devide by zero #200 #994182
Например, у меня y = (x+5)/(x-5), в консольке, если x = 5, просто появляется знак "?", что это за хуета?
#201 #994183
>>994182
Кое-кто обсирается на литералах.
994185
#202 #994185
>>994183
Не понял
#203 #994186
>>994179
Ну и где там книги по алгоритмам, скотина?
>>994182
Не буду томит тебя, уебок. Короче, у тебя x - скорее всего double или float (какой-то тип с плавающей точкой), а компилятор расценивает 5. как литерал integer'а и приводит его к другому типу. То есть, ты пытаешься сложить числа, которые имеют разную битовую длину и получается, что делишь 0 на 0. Надо писать так
(x+5f (если float))/(x-5d (если double) или (x-5m(если decimal)
Ебаный индус ты.
994195
#204 #994195
>>994186
Да, точно, x там double. И все таки этот знак вопроса в консольке, что он означает? Я такое впервые вижу. Это бесконечность?
994196997673
#205 #994196
>>994195
Ты, блять, можешь код сюда кинуть, урод, бля?
994199
#206 #994197
public Bitmap ImageOpen()
{
OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "Open Image";
dlg.Filter = "bmp files (.bmp)|.bmp";
Bitmap btm;
if (dlg.ShowDialog() == DialogResult.OK)
{
btm = new Bitmap(dlg.FileName);
}
dlg.Dispose();
return btm;
}

Пишет, блять, use of unassigned local variable btm.
Какого черта?
994204994556
#207 #994199
>>994196
Сократил чуток, чтобы вас не напрягать сильно
double x = 1, y = Math.Sin(x), z=Math.Cos(x);
double w;
if (y<z) w=(x-1)/(x+1);
else
w=(x+1)/(x-1);
Console.WriteLine(w);
994212
#208 #994204
>>994197
Иф может и не выполнится, тогда ты вернешь unassigned local variable btm.
994271
#209 #994205
double x = 1, y = Math.Sin(x), z=Math.Cos(x);
double w;
if (y<z) w=(x-1d)/(x+1d);
else
w=(x+1d)/(x-1d);
Console.WriteLine(w);

пробуй так.
994212994219
#210 #994212
#211 #994219
>>994205
Спасибо конечно, но что значит "?" в консоли? Че это за ошибка такая?
994267
#212 #994267
>>994219
А я ебу?
#213 #994271
>>994204
А как тогда сделать, что бы оно работало?
994284994299
#214 #994284
>>994271
try catch
3 Кб, 259x234
#215 #994297
public int cc(int c)
{
return c == 1 ? 2 :1;
}

public bool Bigraph(int c)
{
var stack = new Stack<Node>();
stack.Push(Nodes.First());
while (stack.Count > 0)
{
c = cc(c);
var node = stack.Pop();
node._IsVisited = c;

foreach (var edge in node.Edges.Reverse<Edge>())
{
var adjacentNode = edge.GetOtherNode(node);
if (adjacentNode._IsVisited == 0)
stack.Push(adjacentNode);
else if (adjacentNode._IsVisited == c)
return false;
}
}
return true;
}

Запилил, значится, проверку на двудольность графа. Но работает он не правильно, например, в случае рис.1 (на цифры внимание не обращайте) он говорит, мол, граф не двудольный. Что я делаю не так?
3 Кб, 259x234
#215 #994297
public int cc(int c)
{
return c == 1 ? 2 :1;
}

public bool Bigraph(int c)
{
var stack = new Stack<Node>();
stack.Push(Nodes.First());
while (stack.Count > 0)
{
c = cc(c);
var node = stack.Pop();
node._IsVisited = c;

foreach (var edge in node.Edges.Reverse<Edge>())
{
var adjacentNode = edge.GetOtherNode(node);
if (adjacentNode._IsVisited == 0)
stack.Push(adjacentNode);
else if (adjacentNode._IsVisited == c)
return false;
}
}
return true;
}

Запилил, значится, проверку на двудольность графа. Но работает он не правильно, например, в случае рис.1 (на цифры внимание не обращайте) он говорит, мол, граф не двудольный. Что я делаю не так?
#216 #994299
>>994271
500 рублей.

>c = cc(c);


Говори свой адрес, сука.
994301
#217 #994301
>>994299
щито поделать
#218 #994303
Подскажите норм самоучитель, чтобы с нуля постичь c#
994335
#219 #994335
>>994303
Трей Нэш неплохо пишет.
994345
#220 #994345
>>994335
А конкретнее
с нуля
994348
#221 #994346
Не могу понять, почему когда я запускаю 1 и тот же экзешник, в котором только 1 строка хелло ворд, при каждом запуске в диспетчере задач он занимает разный объем ОЗУ? Это наеб на даллары или что? Поч 1 и тот же файл с каждым запуском ест разный объем оперативки? Поясните тупому.
#222 #994348
>>994345
Могу научить просто так, все равно делать нечего. Дам тебе старт, а дальше сам
994349994352
#223 #994349
>>994348
Асечку-писечку?
994361994452
#224 #994352
>>994348
Курсы тогда уж пилите
#225 #994361
>>994349
Сначала визуалку поставь
994362
#226 #994362
>>994361
Так уже стоит...
#227 #994402
Нужно ли знать математику чтоб вкатиться?
(моя математика на уровне 5 класса школы)
994409
#228 #994409
>>994402
Нет, математика не нужна. Просто ставь визуал студио и погнал. Скачай учебник Троелсена и погнал учить матчасть языка. Но говорят, что окошко дрочерство уже малоприбыльно, и нужно полюбасу будет изучать веб , тобишь асп.нет
994416
#229 #994416
>>994409
Ты говоришь что в веб идти, а не легче ли будет не асп, а какие нибудь нынче модные фреймворки учить? По моему и вакансий больше даже.
994701
#230 #994452
>>994349
я школьник
мало ли ты педофил какой-нибудь
#231 #994462
>>993535

На C# можно писать трояны, но с ограничениями.

1) Ты не сможешь инжектировать код в native PE процессы потому что в них нет CLR

2) Ты не сможешь использовать всякую низкоуровненную поеботу

Но ты сможешь подключать kernel32.dll через P/Invoke и все же .NET дает много возможностей. Например можно инжектить .dll из .NET программы в нативный процесс (.dll должна быть нативной). Если уж сильно поебаться можно даже CLR подгрузить в адресное пространство другого процесса.

Писать трояны лучше все таки на чистом Си, хотя можно и на крестах если ты долбоеб ебанутый. Чистый Си это очень мощный язык который дает магическую силу доступа ко всем уголкам ОС. Можно анально насиловать антивирусы очередным супер хитрым способом запуска через huipizda.exe который является доверенным процессом и вообще по дефолту в исключениях
994480
#232 #994466
>>994182

try
{
// код
}
throw (DivideByZeroException)
{
// код обработки
}
#233 #994468
>>993580

В C# есть два типа данных. Это value type и reference type. Типы value хранятся непосредственно на стеке в вызывающей области, например при передаче как параметр в функцию.

Типы reference хранятся в managed heap-е (куча). Reference типы не хранят непосредственно значения, они хранят указатель на место в куче, где это значение находится.

Value типы - все простые типы int, bool, float, decimal, byte и тд

Reference типы - обьекты, классы. String является классом, поэтому он reference тип.

Структуры являются value типами в отличии от классов. Поэтому есть большая разница в их использовании. Подробнее в гугле.

P.s

Value типы могут храниться в куче если они обьявлены как часть обьекта. Например

Class someclass {

int kek;

}

kek при создании инстансов класса будет храниться вместе с обьектом в куче.

В стеке value типы в основном хранятся когда их используют локально
#233 #994468
>>993580

В C# есть два типа данных. Это value type и reference type. Типы value хранятся непосредственно на стеке в вызывающей области, например при передаче как параметр в функцию.

Типы reference хранятся в managed heap-е (куча). Reference типы не хранят непосредственно значения, они хранят указатель на место в куче, где это значение находится.

Value типы - все простые типы int, bool, float, decimal, byte и тд

Reference типы - обьекты, классы. String является классом, поэтому он reference тип.

Структуры являются value типами в отличии от классов. Поэтому есть большая разница в их использовании. Подробнее в гугле.

P.s

Value типы могут храниться в куче если они обьявлены как часть обьекта. Например

Class someclass {

int kek;

}

kek при создании инстансов класса будет храниться вместе с обьектом в куче.

В стеке value типы в основном хранятся когда их используют локально
#234 #994480
>>994462
C++ тоже самое даст, что и и Си, только бинарник на неколько килобайт тяжелее
994485
#235 #994485
>>994480

C++ хуйня. Все равно классы и прочая поебота не нужна в кодинге подобного софта, нахуй его таскать?
125 Кб, 850x850
#236 #994517
try-catch это очень лениво, если речь идет о непредвиденных программой действий, например закрытие окна до выбора файла?
Как я понимаю, try-catch это по сути заглушка для экспешона, а по факту я должен написать исключение для данного действия?

Короче, в чем суть.
Вызывается folderbrowserdialog, и при нажатии "Отмена" программа крашится с эксепшоном. Я сперва думал обернуть в try-catch, но потом погуглил и понял что это не лучшее решение, так как мне поступить?
inb4 делай бочку
994548994554
#237 #994548
>>994517
try-catch это обычная конструкция, которая затыкает исключение, ничего сверхъестественного в ней нет, используй как тебе удобно
Главное, чтобы ты знал, что вызывает исключение, и оно был тобой заранее предвидено
Если есть способ написать без выпадения в исключение, то пиши так, а если нет, то try-catch
#238 #994554
>>994517

>Я сперва думал обернуть в try-catch


Сперва DialogResult проверь.
994558
#239 #994556
>>994197

>Bitmap btm = null;


Объявил - сразу присвоил
Объявил - сразу присвоил
Объявил - сразу присвоил

>dlg.Dispose();


Не надо. Руки убрал.
#240 #994558
>>994554
DialogResult=OK
#241 #994691
Как превратить
"data:image\/png;base64,...=="
в файл картинки?
Convert.FromBase64String() не работает, это какой-то JSON формат, я с ним не знаком. Нужно вручную вырезать "data:image\/png;" из строки или есть способ получше?
994717
#242 #994701
>>994416
Ты знаешь второй фреймворк?
#243 #994717
>>994691
В общем решения в стандартой библиотеке не нашёл, сделал так:

string jsonData = "data:image\/png;base64,BASE64_DATA";

Match match = Regex.Match(jsonData, @"data:image\\/(.+);base64,(.+)");
string format = match.Groups[1].ToString(); // "png"
byte[] image = Convert.FromBase64String(match.Groups[2].ToString());

лютая хуита конечно получилась особенно если картинки тяжёлые
#244 #994785
Не могу представить себе 3х мерный массив, может кто в 2х словах объяснить?
994787994789995770
9 Кб, 423x460
#245 #994787
>>994785
Так?
#246 #994789
>>994785
В 2D сцене каждую точку можно представить массивом x,y, в 3D - x,y,z.
#247 #994794
Смотрю курс, автор уделяет 1-мерным массивам 30 минут, разжевывает донельзя, а 4-мерным 2 минуты. Это легально?
994795994816994841
#248 #994795
>>994794
Да легально, если ты этот курс купил, а не скачал с торрента!
270 Кб, 1600x1200
#249 #994816
>>994794

>4 мерные масивы


Если ты вылазишь за двумерный, то что-то у тебя уже пошло не так.
#250 #994841
>>994794
На практике даже двумерные массивы редко используют, а 4-мерные вообще раз в столетие.
#251 #994892
Здаров, бандиты. Экземпляр класса и объект это одно и то же? Если нет, то в чем разница?
994899994982
#252 #994899
>>994892
Объект храниццо в куче (heap) там методы и остальная параша. А экземпляр содержит статичные поля класса. Как то так, вкратцы ХИХ ЛИЛЬНУЛ С ТОБИ
994900994906
#253 #994900
>>994899
А если точнее то объект содержит статические поля и все методы, а экземпляр содержит не статические поля.
994901
#254 #994901
>>994900
ЗЫ, создавая новый экземпляр класса, НОВЫЙ объект не создается, там идут ссылки на него, для экономии памяти.
#255 #994906
>>994899
Значит когда мы хотим вызвать метод, то мы обращаемся к экземпляру, а тот как-то ссылается на объект в котором лежит метод ?
Где про это можно подробно почитать?
994907994908994912
#256 #994907
>>994906
Когда ты вызываешь метод, ты обращаешься к ОБЪЕКТУ, тому шо только ОБЪЕКТ хранит методы, экземпляр их не хранит.
Где почитать? Ну, говорят есть годная книжка http://www.ozon.ru/context/detail/id/137598683/ и/или http://shop.oreilly.com/product/0636920040323.do, еще вроде норм https://www.amazon.com/C-Players-Guide-2nd/dp/0985580127, они все в шапке есть, чекай шапку. Выбери 1 любую и с самого начала и до конца. Удачи.
#257 #994908
>>994906

> Где про это можно подробно почитать?


Рихтер.
#258 #994912
>>994906

> а тот как-то ссылается на объект в котором лежит метод


Если я правильно понял, каждый объект ссылается на свой тип, тип содержит ссылки на нативный код методов, скомпилированный из il-интсрукций, который расположен где-то в памяти.
#259 #994913
Вопрос от ньюфага. Как часто юзаются перечисления и структуры?
994914994920
#260 #994914
>>994913
Как часто используются условные конструкции?
Наверно, по необходимости?
994917
#261 #994917
>>994914
охуенный ответ
goto тоже наверное используется "по необходимости"?
баба свадебное платье тоже надевает "по необходимости"?
#262 #994920
>>994913
Перечисления повсеместно. Если нужен тип который имеет ограниченное количество состояний + в коде лучше выглядит, каждое состояние в коде соответствовало определенному имени понятному человеку.
По структурам погуглил за тебя:
https://msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx
https://stackoverflow.com/questions/521298/when-to-use-struct
https://softwareengineering.stackexchange.com/questions/92339/when-do-you-use-a-struct-instead-of-a-class
994922
#263 #994922
>>994920
Хороший гой.
994924
#264 #994924
>>994922
Ну и для себя тоже какбэ.
994925
#265 #994925
>>994924
Да я шучу, все здесь сидят и помогают по фану.
#266 #994958
float c = 1.5f;
float h = 4.0f;
float area = 1 / 2 c h; //0
float another_area = c h 1 / 2; //3

Анон, я по Вайтекеру учусь, нихуя не могу понять, почему area дает 0 (точнее, это могу понять: инт 1/2 = 0, после ноль умножается и дает 0), но вот второе. Типа, сначала мы получили флоат, и компилятор начинает приводить все к флоту или шо?
994961
4 Кб, 429x102
#267 #994961
>>994958
Сожрало знаки, вот скрин.
994965994968994984
#268 #994965
>>994961
1 / 2 - деление интов. Пиши 1.0f/2.0f - получишь то, что ожидаешь
994969
14 Кб, 370x182
#269 #994968
>>994961
Выбирай, как нравится.
994971
#270 #994969
>>994965
Спасибо, но мне непонятно, почему инты (1 и 2) сразу не привелись неявно к флоту. Во второй операции они правильно приводятся и считается абсолютно верно.
994976
#271 #994971
>>994968
Я так понимаю, про неявное приведение типов лучше забыть, чтобы не было такого анал-карнавала?
994973994977
#272 #994973
>>994971

1 разделить на 2 в инт = 0.5, это уже не инт, по этому 1 разделить на 2 = 0, от этого финал = 0.
994974
#273 #994974
>>994973
Ну так оно да, но почему во второй формуле, которая идентична, инты привелись неявно к флоту?
994978994987
#274 #994976
>>994969
Потому что ты делишь на 2 не 1.
#275 #994977
>>994971
Либо явно преобразуй (int)x * ...
Либо добавь "Число.f
Либо используй дабл и не ставь постфикс f.
#276 #994978
>>994974
Потому что 6.0 * 1, 6.0 достаточно чтоб выражение скастилось.
994979
#277 #994979
>>994978
Блин, голова кипит после работы, уже не могу ничего понять. Спасибо большое за помощь.
А есть что-нибудь, вот, как для дебилов, что объяснит на пальцах работу явного и неявного приведения типов в шарпе?
994985
#278 #994982
>>994892
Да одно и тоже. Только объект может быть еще и экземпляром типа-значания(структуры)
#279 #994984
>>994961
Тю, я ебан. Понял: если мы бы делили 1 / 2.0f, то есть инт на флот, приведение сработало бы, т.к. флот - более "широкий". А мы поделили инт на инт, получили 0 и дальше уже его с интами женили. Все, тут ебаный цирк на ВНИМАТЕЛЬНОСТЬ.
Хотя от статейки по приведению типов - не откажусь.
994986
#280 #994985
>>994979
Не явно само приводится, если нет потери информации, например инт=дабл. А когда ты явно (сам) приводишь, ты ставишь печать кровью (своей), например double a = 1.55; ты его в инт кастуешь (int)a; это явное преобразование с потерей информации, прочитать можешь в любом учебнике.
994991
#281 #994986
>>994984
double a = 1.234
int b = a - компилятор не даст, т.к. ты теряешь инфу при НЕЯВНОМ касте, нужно ставить свою подпись int b = (int)a - потеря тысячной части, чуешь?
994991
#282 #994987
>>994974
Кнопилятор видит выражения одинакового приоритета и идет выполнять их последовательно.
В первом случае он видит сначало интовое деление, а потом уже работу со флоатами. Во твором случае он всегда работает со флоатами.
994991
#283 #994991
>>994987
>>994986
>>994985
Спасибо большое, господа. Нужно было просто мозги размять.
994992994994
#284 #994992
>>994991
Помому, у Троелсена подводные лучше затрагиваются, подробнее, чем у Вайтекера.
994993
#285 #994993
>>994992
Да я же ньюфаг, пока что с такой вот простой книжки начал. Потом буду теребить что-то более сложное и серьезное.
#286 #994994
>>994991
Ничего, дойдешь до волшебного слова implicit и сможешь организовать себе персональный ад по неявному касту чего угодно к чему угодно. ГОЛОВУ НЕ НУЖНО БУДЕТ ЗАБИВАТЬ
#287 #995068
Очередной студент-быдлокодер ИТТ. Суть токова: вызываю и закрываю консоль из ВинФорм приложения методами AllocConsole() и FreeConsole() соответсвенно. Проблема в том, что я могу сделать это только один раз. После того, как консоль была закрыта, попытка открыть ее дает System.IO.IOException. ЧЯДНТ?
#288 #995080
Куда класть ресурсы? Не знаю как у вас, но у меня на моно структура проекта такая
Project/Project.sln <---- проект
Project/Project/Project.csproj <---- подпроект
Project/Project/Program.cs <---- исходник
Project/Project/bin/Debug/Project.exe <---- исполняемый

Где можно создать папку с ресурсами, которые загружает программа, и как правильно указать путь к ним? Не могу же я рядом с Project.exe всё класть, если заливать в репу то Project/bin вообще не должно существовать до компиляции.
#289 #995166
Поясните, ASP.NET Core уже можно хостить на линуксах?
995168
#290 #995168
>>995166
Не отвечайте, сам нашёл.

Скажи лучше вот что, анон:
Стоит выбрать связку ngnix mono + ASP.NET MVC4, или ngnix + ASP.NET Core?
995174
#291 #995174
>>995168
Сорян, имел в виду apache mono + MVC4, не ngnix
#292 #995281

>Использование var запрещено, поскольку это нарушает принцип строгой типизации.


Блять, куда я попал?
995299995306
#293 #995299
>>995281
С хуя-ли запрещено?
#294 #995306
>>995281
Я пишу var только если после него стоит new, оптимальный вариант.
996111996188
93 Кб, 818x597
#295 #995328
Сделал класс для хранения картинки в памяти вместе с форматом, есть очевидное говно?
995334995411
#296 #995334
>>995328
Что за фекальные цвета?
#297 #995411
>>995328
А нахуя ты это написал?
#298 #995470
struct Str {
public int s;
}

Str testStr; <- почему не вызывается дефолтный конструктор, который инициализирует testStr.s?
995473995497
#299 #995473
>>995470
потому что это не С и не кресты. Хочешь конструктор - позови new.
995482
#300 #995482
>>995473
Почему я могу писать testStr.s = 0, если объект не создан? Если создан, то какой конструктор вызывался?
995489995495
#301 #995489
>>995482
Вызовется дефолтная имплисит имплементация, которую ты не можешь переопределить. Для каждого члена структуры позовется default(T).
995622
#302 #995495
>>995482
Потомус что у структур можно не звать конструктор. У них стразу есть состояние по дефолту без явного вызова конструктора. От этого у них запрещены конструктры без параметров или с неполной инициализацией.

>Если создан, то какой конструктор вызывался?


Дефолтный без параметров. У стрктур его переопределить нельзя.

Но лучше явно позвать нужный конструктор и не ебать мозг этой тонкостью.
995622
#303 #995497
>>995470
Ебаный цирк.

struct Str
{

public int s;
public int v;

public Str() // неявный конструктор мейд ин конпелятор, неявно будет вызван до первого обращения к пременной такого типа.
{
s = 0; // default(T) - null or 0
v = 0;
}

public Str() //Ошибка! Без параметров нельзя.
{
s = 42;
v = 1488;
}

public Str(int ns) // Ошибка! Неполная инициализация.
{
s = ns;
}

public Str(int ns) // Норм.
{
s = ns;
v = ns + 1;
}

}
#303 #995497
>>995470
Ебаный цирк.

struct Str
{

public int s;
public int v;

public Str() // неявный конструктор мейд ин конпелятор, неявно будет вызван до первого обращения к пременной такого типа.
{
s = 0; // default(T) - null or 0
v = 0;
}

public Str() //Ошибка! Без параметров нельзя.
{
s = 42;
v = 1488;
}

public Str(int ns) // Ошибка! Неполная инициализация.
{
s = ns;
}

public Str(int ns) // Норм.
{
s = ns;
v = ns + 1;
}

}
#304 #995508
namespace A.B {
public class Yoba;
}

Почему можно сделать
using A.B;
var x = new Yoba();

но нельзя
using A;
var x = new B.Yoba();

?
995792995992
#305 #995622
>>995495
>>995489
почему все что вы пишете не вяжется с реальностью?
struct Str {
public int s;
}

Str testStr;
Console.Write(testStr.s) <- ошибка компилятора "локальная переменная не инициализирована".
Получается

>Для каждого члена структуры позовется default(T)


неправда

>Дефолтный без параметров. У стрктур его переопределить нельзя.


Тоже неправда
Получается никакой конструктор не вызывается? вот этот прав?

>У них стразу есть состояние по дефолту без явного вызова конструктора. От этого у них запрещены конструктры без параметров или с неполной инициализацией.

995629995738
#306 #995629
>>995622
Ну или вызывается конструктор, который не инициализирует поля
#307 #995738
>>995622
Все вяжется просто ты не вдупляешь.

Str testStr; // нет вызова конструктора
testStr.s = -1; // но переменная здесь уже есть и инициализирована 0
Console.Write(testStr.s); // тут все ОК т.к. был уже неявный вызов конструктора перед присвоением -1

Просто не заморачивайся и всегда явно делай:
Str testStr = new Str();
995761
#308 #995740
Кто-нибудь сталкивался с таким?
Image.FromFile или Image.FromStream падают с ошибкой
libpng error: invalid after png_start_read_image or png_read_update_info

Imagemagic говорит:
Mime type: image/png
Class: DirectClass
Geometry: 150x30+0+0
Units: Undefined
Type: GrayscaleAlpha
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit

Браузер и другие программы картинку открывают. только класс Image не может совладать с ней.
995743995932
#309 #995743
>>995740
Никогда с таким не сталкивался. Попробуй ее пересохранить в нормальном редакторе.
#310 #995754
Это же капча, с ними никак вручную работать
Придётся походу тащить пакет ImageMagickSharp
#311 #995761
>>995738
ну ок, спасибо.
2 Кб, 712x104
#312 #995770
>>994785
Одномерный массив, каждый элемент которого - двумерная матрица.
#313 #995792
>>995508
Чому нельзя?
995804
#314 #995804
>>995792
Потому что надо писать A.B.Yoba
#315 #995932
>>995740
В общем спустя полдня возни получилось сделать почти стандартными средствами, обнаружилось что Gtk.Image жрёт эти картинки. А Gtk-Sharp всё-таки легче использовать на любой платформе, чем всякие либы для работы с картинками с нативными зависимостями.

// Прочитать файл
Gtk.Image gtkImage = new Gtk.Image("test.png");
byte[] buffer = gtkImage.Pixbuf.SaveToBuffer("png");
Image image = Image.FromStream(new MemoryStream(buffer));

// Прочитать из памяти
Gtk.Image gtkImage = new Gtk.Image(new MemoryStream(buffer));
Image image = Image.FromStream(new MemoryStream(gtkImage.Pixbuf.SaveToBuffer("png")));
#316 #995992
>>995508
Потому что полное квалификационое имя типа A.B.Yoba .
Либо ты используешь его, либо указываешь его полный неймспейс (A.B). Сидеть сразу на двух стульях, когда часть неймспеса через using, часть через название типа -- нельзя.

Сделано для упрощения компелятора. Он просто подключает все использованые пространствах имен, без подробного анализа текста на поиск частично заданых пространств в именах типов.
995996
71 Кб, 800x533
#317 #995996
>>995992
Пиздец косноязычие, да.

Кроч, проблема вот в чем:

using A;
using E;
using F;

var x = new B.Yoba(); // в каком пространстве нужно искать Yoba - в A.B, E.B, F.B ?
Yoba может быть несколько разных, какого выбрать?

Это сразу все и порешили: нормально делай - нормально будет.
996018
#318 #996018
>>995996
В случае конфликтов - ошибка компиляции, это логичное и очевидное поведение компилятора.
В с++ удобно делать

using std;
using std::chrono;
using std::chrono::time_point;

И если где-то ещё есть time_point, можно написать

using std;
chrono::time_point
other::time_point

В C# пришлось бы везде добавлять std:: (на самом деле так все и пишут, но это уже другая история)
#319 #996111
>>995306
Аналогично. Только с условием что название типа очень длинное. Нахуя экономить на четырёх буквах и писать var вместо string, например.
#320 #996181
Проверка ввода.
Думаю, что говнокод. Как исправить?

while (true)
{
try
{
Console.WriteLine("Введите ключ.");
int key = Convert.ToInt32(Console.ReadLine());
break;
}
catch (FormatException)
{
Console.WriteLine("Ошибка: не введено целое число.");
}
catch (OverflowException)
{
Console.WriteLine("Ошибка: введено слишком большое число.");
}
}
996185
#321 #996185
>>996181
Используй Int32.TryParse. Без выброса исключений будет работать быстрее.
#322 #996188
>>995306
Ну после какого-нибудь Kudah.ToString() тоже можно
#323 #996198
В стандартой библиотеке есть что-то вроде Data::Printer из Perl, который автоматически разворачивает все публичные (и опционально приватные) члены классов по иерархии наследования и выдаёт красиво сформированную строку?
Надоело вручную ToString() писать
996260
#324 #996246
Как изменить размер у чекбокса? .Height и .Width меняют только размер область, в которую можно кликнуть, чтобы засчиталя клик по чекбоксу, но сам размер чекбокса не изменяется.

using System;
using System.Windows.Forms;
public class HelloWorld : Form
{
static public void Main ()
{
Application.Run (new HelloWorld ());
}

public HelloWorld ()
{
string S="test123";

CheckBox checkBox1 = new CheckBox();

checkBox1.Appearance = Appearance.Normal;

checkBox1.AutoCheck = true;
checkBox1.Text = S;
checkBox1.Height = 100;
checkBox1.Width = 100;

Controls.Add(checkBox1);

}
}
#324 #996246
Как изменить размер у чекбокса? .Height и .Width меняют только размер область, в которую можно кликнуть, чтобы засчиталя клик по чекбоксу, но сам размер чекбокса не изменяется.

using System;
using System.Windows.Forms;
public class HelloWorld : Form
{
static public void Main ()
{
Application.Run (new HelloWorld ());
}

public HelloWorld ()
{
string S="test123";

CheckBox checkBox1 = new CheckBox();

checkBox1.Appearance = Appearance.Normal;

checkBox1.AutoCheck = true;
checkBox1.Text = S;
checkBox1.Height = 100;
checkBox1.Width = 100;

Controls.Add(checkBox1);

}
}
996451
#325 #996260
>>996198
Напиши свой через рефлексию.
#326 #996262
a.txt.Contains(@"st """)

посоны, почему эта строчка так странно себя ведет и делает совсем не то что я ожидаю, при этом "st \"\"" вполне себе работает
в чем подвох? разве вложенные кавычки запрещены? если да то хуле оно вообще компилируется?
8 Кб, 190x266
#327 #996276
Перекатываюсь с ASP.NET Web API на ASP.NET Core(использую Web API шаблон проекта).

Как используя attribute based routing сделать в контроллере метод с необязательными параметрами?

https://pastebin.com/N5sVKFUt
Хочу чтобы этот метод вызывался по маршруту вроде "/Safe" или "/Sukebei". В старом ASP.NET Web API это так и работало, а в Core метод вызывается только если заполнить в URL все параметры.
996277
#328 #996277
>>996276
Читаю документацию жопой, извините за тупой вопрос.

https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing
{id?} defines id as optional
#329 #996288
аноны посоветуйте что-нибудь в роли библии c# и asp.net
11 Кб, 506x436
#330 #996299
Сап, на пике класс для работы со строками как с массивом символов. Что нужно дописать, чтобы метод Length(должен возвращать длину) работал нормально?
996304996313
#331 #996304
>>996299

>класс для работы со строками как с массивом символов


Строка и так является массивом символом. Нахер тебе эта наркомания?

>Что нужно дописать, чтобы метод Length


Да вроже все и так правильно. В чем проблема то?
996310
#332 #996310
>>996304
Эта наркомания, потому что задание такое дали, а этот метод возвращает постоянно ноль
996313
#333 #996313
>>996299
>>996310
return array.Length;
996317
#334 #996317
>>996313
Пишет что "Ссылка на объект не указывает на экземпляр объекта"
996327
#335 #996327
>>996317
В конструкторе с параметром кто будет инициализировать массив?
996332
#336 #996332
>>996327
Спасибо анон, а я аутист
#337 #996448

> Я собрался делать свой первый проект на asp.net mvc 4.0 и размещать его на Ubuntu сервере с моно. Какие подводные ?

996572
#338 #996451
>>996246
зачем
#339 #996452
Поясните, как написать кросспатформенное приложение с GUI на шарпе. Винформ и впф же не сработают, да?
996453996571
#340 #996453
>>996452
xamarin
996454
#341 #996454
>>996453
Это годный вариант или костыль? Или лучше вообще в джаву идти?
11 Кб, 546x249
#342 #996465
Что значат эти знаки вопроса в ретурне?
996467996476
#344 #996476
>>996465
Эквивалентно коду
if(_myResetTimer==null)
return _myResetTimer = new RelayCommand(ExecuteResetTimer);
else
return _myResetTimer;
996478
#345 #996478
>>996467
>>996476
Спасибо.

Хоспаде, какой же MVVM странный.
996497
#346 #996497
>>996478
Что в нем странного?
996498
#347 #996498
>>996497
Даже не знаю. Например то, что для вызова диалога и передачи одной переменной нужно написать 500 строк кода? http://www.global-webnet.net/IDontKnowAnyBetter/post/2015/11/20/mahapps-custom-dialog-mvvm-light-and-me

И то, что в итоге получается https://www.youtube.com/watch?v=FKhidKIgLY4

И это с использованием фреймворка, без него нужно было бы писать сервисы с нуля.
133 Кб, 1920x1080
#348 #996571
>>996452
Если ты про десктопное приложение, то Windows Forms(поддерживается Mono).
Если про мобильное, то Xamarin.

Кстати, тут недавно один кекс на хабре писал про кросплатформенный UI фреймворк. Но я сам с ним не сталкивался и хз насколько оно жизнеспособно.
https://habrahabr.ru/post/328684/
996592996700
#349 #996572
>>996448

>Какие подводные ?


Ты отстал от жизни. Загугли ".NET 2015"
996578996705
#350 #996578
>>996572

>Ты отстал от жизни. Загугли ".NET 2015"


Прошло уже 2 года.
А NIET Core как не было, так и нет.
996585
#351 #996585
>>996578
У меня поставился 1.3 на линукс 64 битный, простые проекты собирает но не может поставить пакеты, жду 2.0
#352 #996592
>>996571
А как насчёт конструктора интерфейса мышкой? Для Gtk# есть дизайнер в Monodevelop и всё кроссплатформенное
996702
#353 #996700
>>996571
А линукс?
#354 #996702
>>996592

> Gtk#


ГОВНА ВЪЕБАЛ
996711
#355 #996705
>>996572
Пока для НЕТ кора не будет написано 100500 библиотек на все случаи жизни, не надо и использовать, так можно просто палочкой потыкать и велосипед написать, если времени много. Банковский софт еще не скоро перейдет на нет кор
996713996761
#356 #996711
>>996702
Gtk3 скоро станет абсолютным стандартом для всех дистрибутивов, его двигают Red Had и Cannonical. А Gtk# самый крупный биндинг который поддерживается дочерней кампанией Microsoft.
#357 #996713
>>996705
С банковский софта работает на винде онли?
996715
#358 #996715
>>996713
Да , 95% всех банкоматов , терминалов работают на виндовс
996718
479 Кб, 600x800
#359 #996718
>>996715
Отличный выбор
#360 #996722
class Yoba {
public string A;
public string B;
}

Как запретить конструктор new Yoba { A="a" } без B?
996729996730996747
#361 #996729
>>996722
У тебя в классе нет конструктора.
996747
#362 #996730
>>996722
А вообще назначай значение по-умолчанию, ноль или string.Empty.
996747996754
#363 #996747
>>996729
>>996730
че ты блядь несешь, пошел нахуй
>>996722
не делай поля публичными
996754
#364 #996754
>>996730
Мне не нравится ловить 40 строк стактрейса из-за null, а "" вместо null запросто часа 3 отладки может обеспечить
>>996747
public string A { get; private set; }
не работает
996760996763996770
#365 #996760
>>996754
Дурак что ли? Зачем пропертям private ставишь?
996762996770
#366 #996761
>>996705

>100500 библиотек на все случаи жизни


Приведи конкретные примеры. Например, Json.net и AngleSharp есть.
#367 #996762
>>996760
Так получается что снаружи класса есть GetA(), но нет SetA(), что не так?
#368 #996763
>>996754

>public string A { get; private set; }


>не работает


не ври, конструктор через курли брейсерс не работает.
#369 #996768
какого хуя тут столько даунов, которые просто несут хуйню? это вы так ньюфагов тролите или что? перекатился к вам с кресто треда и прихуел.
996769
#370 #996769
>>996768
Я и есть ньюфаг, который только что давал ответ. Не вижу в этом ничего плохого.
#371 #996770
>>996754

ну и этот >>996760 прав, лучше уж вообще убрать set
996771996783
#372 #996771
>>996770
ЕСЛИ ты не собираешься присваивать ему значение. оставляй если все-таки будешь, потому что без set твое проперти становится read only.
#373 #996783
>>996770
А, понятно. Я сначала делал статические методы и формировал класс внутри него, а когда передал на обычные конструкторы не понял что можно убрать private set потому что в конструкторе можно изменять свойства даже если указан только get.
219 Кб, 1440x900
#374 #996790
Ананасы, не работает метод хорд в лабе по численным методам: считает только одну итерацию. Хз как кидать кину так код

.....
private const double EPSILON = 0.0001;

static void Main(string[] args) {
Console.WriteLine("# EPSILON = "+EPSILON);

....

Console.WriteLine("\n# Метод Итераций");

IterationMethod(-0.85, -0.25);
IterationMethod(1, 1.5);
IterationMethod(2, 3);

....

static private void IterationMethod(double a, double b) {

double curX = a;

if (F(a) * DDF(a) > 0)
curX = a;
else
curX = b;

double nextX = G(curX);

int ITERATIONS = 0;

while (Math.Abs(curX - nextX) > EPSILON) {

//выдает одну итерацию

if (ITERATIONS >= 100)
{
Console.WriteLine("Метод расходится! Последнее значение до остановки, x= " + Math.Round(nextX, 4));

return;
}

nextX = G(curX);
curX = nextX;

ITERATIONS++;

}

if (ITERATIONS == 0) {
Console.WriteLine(" Метод расходится! Последнее значение до остановки, x= " + Math.Round(nextX, 4));
return;

}

Console.WriteLine(String.Format("Корень x= {0}\nЧисло итерация метода= {1}\n", Math.Round(nextX, 4), ITERATIONS));
}
219 Кб, 1440x900
#374 #996790
Ананасы, не работает метод хорд в лабе по численным методам: считает только одну итерацию. Хз как кидать кину так код

.....
private const double EPSILON = 0.0001;

static void Main(string[] args) {
Console.WriteLine("# EPSILON = "+EPSILON);

....

Console.WriteLine("\n# Метод Итераций");

IterationMethod(-0.85, -0.25);
IterationMethod(1, 1.5);
IterationMethod(2, 3);

....

static private void IterationMethod(double a, double b) {

double curX = a;

if (F(a) * DDF(a) > 0)
curX = a;
else
curX = b;

double nextX = G(curX);

int ITERATIONS = 0;

while (Math.Abs(curX - nextX) > EPSILON) {

//выдает одну итерацию

if (ITERATIONS >= 100)
{
Console.WriteLine("Метод расходится! Последнее значение до остановки, x= " + Math.Round(nextX, 4));

return;
}

nextX = G(curX);
curX = nextX;

ITERATIONS++;

}

if (ITERATIONS == 0) {
Console.WriteLine(" Метод расходится! Последнее значение до остановки, x= " + Math.Round(nextX, 4));
return;

}

Console.WriteLine(String.Format("Корень x= {0}\nЧисло итерация метода= {1}\n", Math.Round(nextX, 4), ITERATIONS));
}
996795
#375 #996795
996800
10 Кб, 586x180
19 Кб, 1138x256
#377 #996809
>>996800
Ну во-первых, я не вижу одной итерации, я вижу много итераций. В методе итераций 10, в методе хорда от 6 до 27. Что не так?
996810996834
#378 #996810
>>996809
curX после условия надо поставить, иначе x = Nan
996812
#379 #996812
>>996810
Сам забыл переставить, искал ошибку
996815
#380 #996815
>>996812
do
{

nextX = G(curX);

ITERATIONS++;

if (Math.Abs(nextX - curX) >= EPSILON && ITERATIONS == 100)
{
//Console.WriteLine("Метод расходится! Последнее значение до остановки, x= " + Math.Round(nextX, 4));
error = true;
break;
//return;
}

curX = nextX;

} while (Math.Abs(curX - nextX) > EPSILON);
996818
#381 #996818
>>996815
Очевидная проблема в алгоритме, а не в C#. Кури лекцию снова.
#382 #996834
>>996809
Привет максимка.
996839
#383 #996839
>>996834
И тебе привет, маня.
У тебя детектор барахлит
#384 #996863
Здесь кто-нибудь работает с Catel?
#385 #996864
Я так и думал(
#386 #996869
А хоть кто-нибудь из WPF энтерпрайза или тот, кто написал хотя бы что-то большее, чем тестовое приложение на домашней пекарне?
996921
#387 #996896
Если сделать конструктор, который использует .Result вместо await, он ничего не заблокирует?

// Асинхронный метод, одновременно работают несколько таких
async Task<Result> DoRequest {
return new Result(await httpClient.GetAsync("url")); // Вызов конструктора Result
}

class Result {
// Конструктор
public Result(HttpResponseMessage response) {
var content = response.Content.ReadAsStringAsync().Result; // Блок
}
}

Несколько DoRequest могут выполняться при том что создают объект с таким конструктором?
996924
#388 #996898
>>993835
Я один про питоновский yield подумал, когда увидел это творение?
#389 #996921
>>996869
Что ты хочешь узнать?
996923
#390 #996923
>>996921
Хочу узнать, под какие платформы разрабатывается такой софт. Например, писать сегодня большой проект на WinForms никто не будет, правильно? А это значит, что поддержка винды XP отпадает, поскольку WPF полноценно работает начиная с 7ки. Вот например я собрал проект с Catel под фреймворк 4.0 (который теоретически должен работать под XP), однако XP его не ест и выплевывает с ошибкой.

Далее, макось. Под нее пишут такой софт? А под линукс? Или пишут три разных проекта на разных технологиях и на разных языках?
996926
#391 #996924
>>996896
1) Result блокирует и убивает весь смысл использования TAP.
2) Делать такое в конструкторе - это зашквар.
3) Для того, чтобы скачать строку есть метод GetStringAsync.
4) HttpClient и HttpResponseMessage IDisposable и должны быть обернуты в using.
996951
#392 #996926
>>996923

> Хочу узнать, под какие платформы разрабатывается такой софт.


Винда онли.

> Или пишут три разных проекта на разных технологиях и на разных языках?


Их вообще не пишут. WPF в кровавом энтерпрайзе - это B2B, клиентское ПО для офисного планктона. Что барин даст, на том и будут работать, а барину проще всего купить своим рабам дешёвые офисные компы с предустановленной виндой.
996928996929
#393 #996928
>>996926
А что насчёт WINFORMS и WPF?
996930
#394 #996929
>>996926
Да, ты написал про WPF. Пора спать, а то я даже не заметил.
#395 #996930
>>996928
Я сомневаюсь, что кто-то будет что-то писать сегодня с нуля под WinForms, только поддержка очень-очень древнего говна. Хотя он, вроде как, есть в Mono на линуксах, но я в этом вопросе не шарю, поэтому не буду лишний раз пиздеть.
WPF, на самом деле, тоже уже легаси. Сами M$ говорят переходить на 10 и UWP, рынок переводит всё в веб, вакансий практически нет.
996933
#396 #996933
>>996930

>Сами M$ говорят переходить на 10 и UWP


Но UWP это тот же WPF, не?
996934
#397 #996934
>>996933
Лол, нет, UWP - это вообще про другое.
996936
#398 #996935
Подскажите, как на WPF нарисовать бинарное дерево, чтобы не было пересечений и ничего нигде не наезжало и уровни были на одной высоте.
997036
#399 #996936
>>996934
Погуглю для интереса.

Но честно говоря, я слабо представляю, как в наших реалиях владелец мелкого бизнеса решает выбросить старые компы на ХР НЕ НУ А ШО ВСЁ ЖЕ И ТАК РОБИТ и поменяет их под 10ку. Поэтому меня, пожалуй, больше всего интересует WPF с поддержкой ХР - 10. Сойдёт?
996938
#400 #996938
>>996936

> WPF с поддержкой ХР - 10


Я не знаю, как WPF себя ведёт под XP или Vista, мне доводилось педалить продукты, которые были рассчитаны только на 7+.
116 Кб, 1015x241
#401 #996941
Почему в сишарп объект типа и экземпляр типа это разные вещи?
996943996961996966
#402 #996943
>>996941
Посмотри что там в оригинале. Возможно перевели хуево.
996949
#403 #996949
>>996943
Ну, там не в одном месте, а прямо скажем везде так.
Женя Каспермский #404 #996950
Анончики, подскажите что за обфускатор используется в приведенных ниже образцах и чем можно снять. Как я понял, там используется забавная методика - куски кода разбиваются в методы. Хэлп.

https://raw.githubusercontent.com/stamparm/EternalRocks/master/samples/cf8533849ee5e82023ad7adbdbd6543cb6db596c53048b1a0c00b3643a72db30
https://raw.githubusercontent.com/stamparm/EternalRocks/master/samples/3b4497c7f8c89bf22c984854ac7603573a53b95ed147e80c0f19e549e2b65693
https://raw.githubusercontent.com/stamparm/EternalRocks/master/samples/a77c61e86bc69fdc909560bb7a0fa1dd61ee6c86afceb9ea17462a97e7114ab0
#405 #996951
>>996924
Значит правильно сделать
class Result {
public static async Task<Result> FromResponseAsync(response) {
var content = await response.ReadAsStringAsync()
}
}
?
Не самая удобная практика, вот я и решил делать нормальный конструктор

Насчёт IDisposable почитаю так и быть, я думал там сокеты/файлы не сразу, закрываются, оказалось посложнее тема
996960996984
40 Кб, 532x379
#406 #996960
>>996951
Что-то такое получилось
996973997021
#407 #996961
>>996941
Под объектом типа подразумевается экземпляр класса Type
996964
#408 #996964
>>996961
Нет, подразумеваются стат члены на куче.
#409 #996966
>>996941
var a = new A(); // a - экземпляр типа
var t = typeof(A); // t - объект типа
В объекте типа хранятся статические поля, указатели на виртуальные функции и прочая метапоебота. Каждый экземпляр A имеет ссылку на объект t, который всего один. Ты можешь её получить с помощью метода GetType(), который наследуется от Object.
996967
#410 #996967
>>996966
А если я кому скажу, что объект и экземпляр это разные вещи, как им пруфануть после того, как меня обоссут?
996972
#411 #996972
>>996967
Объект (object) и экземпляр (instance) - это одно и то же. Просто переводчик по понятным причинам не захотел писать "экземпляр типа" и "экземпляра типа экземпляра типа", иначе бы все точно ебанулись. У Рихтера есть же наглядная диаграмма, поясняющая, о чём речь.
996974
19 Кб, 597x100
#412 #996973
>>996960
Ещё
#413 #996974
>>996972
У него есть факт, что есть некий один объект у типа и много разных экземпляров. И это у него разные вещи. А в ООП это одно и тоже, так что непонятно как вообще соотносить в разговоре про ООП с другими людьми. Даже люди, которые кодят на сишарп не используют такую терминологию и смотрят на меня с жалостью.
#414 #996984
>>996951
Такой вариант, по-моему, лучше, но если этот метод не делает ничего кроме вызова другого метода и создания Result, то он не нужен: нет смысла плодить сущности.
997002
#415 #996987
Может ли расширяющий метод быть конструктором, который задаст значения приватных полей?
997026
#416 #997002
>>996984
Ну так проблема в том что контент асинхронно читается и хедеры с HttpStatus тоже нужны. Получается два варианта:

return new Result(response, await response.Content.ReadAsStringAsync())

return await Result.FromResponseAsync(response)

вот я и выбрал второй
997021
#417 #997021
>>997002
Ок, это в любом случае дело вкуса.

>>996960
Не вижу смысла бросать исключение, которое ты тут же ловишь и ещё и проглатываешь, к тому же ты проглатываешь не только его, но и другую шляпу, которая может выкинуться из клиента. Имхо, вот так красивше выглядит.

https://pastebin.com/HBNjKa7v
997030
#418 #997026
>>996987

> Может ли расширяющий метод быть конструктором


Нет. Это всего лишь сахар, который заменяется компилятором на вызов статического метода.

> который задаст значения приватных полей


Только через рефлексию.
31 Кб, 550x264
#419 #997030
>>997021
Да он постоянно исключения кидает, внимание достойны только ошибки SSL (если клиент не может делать реквесты по HTTPS, какая-то проблема с ключами в среде)
Я почитал что finally выполняется перед return и остановился на таком варианте
997036
#420 #997036
>>997030
К слову, если ты не хочешь, чтобы метод падал с исключениями, то лучше обернуть вообще всё тело метода в try-catch.

>>996935
Что-то типа такого.
https://pastebin.com/sTMjHYPf
997160
#421 #997060
Как писать код в visual studio community 2017?Универсальный(нет) проект настолько универсален что работает только на 10 винде, а я в рот ебал эту винду.Как там вообще с 7 винды создать файл и кодить его?
997065
#422 #997065
>>997060
Создать проект -> Классический рабочий стол -> Приложение WPF/Консольное приложение
997072997095
83 Кб, 946x654
#423 #997072
997079
#424 #997079
>>997072
Запусти установщик и поставь компоненты недостающие.
997095
#425 #997095
>>997065
>>997079
спасибо, разобрался
#426 #997100
Как сделать tr/YRQ/УЯО/ со string?
997119
62 Кб, 739x429
#427 #997119
>>997100
Ясно, пилим охуетильные костыли
#428 #997125
Продублирую из ньюфаг треда.

Есть один словарь со словарями: System.Collections.Generic.Dictionary<char, System.Collections.Generic.Dictionary<int, char>>;

Значения в котором представляют собой нечто вроде: e : [g,o,l].
Так вот. Подскажи пожалуйста, как таки очистить словарь от дубликатов формата e :[g,o,o]
Ну или же, избавиться от подобных элементов на стадии заполнения словаря (код - https://pastebin.com/V9Y7a2ZJ)
#429 #997160
>>997036
Я видимо не так выразился. Интересует сам алгоритм, т.е. как нарисовать, чтобы не наезжало
997336
#430 #997162
Поясните для дауна парой предложений, что такое:
1. Dependency Injection
2. IoC Container
997187
#431 #997187
>>997162
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection
https://simpleinjector.readthedocs.io/en/latest/wpfintegration.html
Читай.
Если вкратце, то инъекция зависимостей - это одна из разновидностей IoC (инверсии управления). Суть в том, что объект не сам создает свои зависимости, а получает их извне, например, через конструктор или свойство.
Когда говорят IoC-контейнер, то обычно подразумевают DI-контейнер - инструмент для создания иерархии зависимых объектов, автоматической инъекции зависимостей, вызова инициализаторов и прочего говна.
Короче, прочти по ссылкам, и станет понятно, что это и зачем оно нужно.
997209997258
#432 #997209
>>997187
Сложна(
Вернусь к этому, когда подрасту.
#433 #997258
>>997187
Можешь глянуть https://www.youtube.com/watch?v=IKD2-MAkXyQ здесь нормально пояснили?
997287
#434 #997287
>>997258
Речь о том чтобы подсунуть другую библиотеку с тем же названий функций, но другим кодом, или что?
997367
#435 #997300

>2k17


>писать 200 строк кода, чтобы открыть диалог и передать параметры


Алё, вы серьезно? И это блядь good practice? Тьфху блядь.
14 Кб, 929x225
15 Кб, 792x253
#436 #997333
Как подставить свое текстовое значение туда в base()?
997335997338
6 Кб, 740x47
#437 #997335
>>997333
Решил сам
997338
#438 #997336
>>997160
Для деревьев есть алгоритм Efficient Sugiyama.
Ну или можешь сразу готовую либу использовать, например Graph.Sharp, там уже реализованы layout для деревьев.
Но это для более сложных деревьев. Для бинарных, которые относительно просты, можно и свой велосипед нагородить. но зачем?
#439 #997338
>>997333
>>997335
Короч, все равно есть вопрос по этому. Можно ли как-то перенести эту ебучую конструкцию base() в сам конструктор?
997344
#440 #997344
>>997338
Сделай конструктор с параметром.
#441 #997367
>>997287
Речь о том, чтобы уменьшить зацепление. Возможность подсунуть разные реализации внедряемых абстракций - это один из бонусов.
21 Кб, 720x400
#442 #997371
Поясните за эстетику шарпа. Кто использует шарп? Какие проекты на нем пишутся? Какая разница между демографией людей которые пишут на, скажем, питоне?
Есть ли люди которые перешли на дотнетовский стек, после того как писали достаточно долгое под юникс-подобные системы?
997385
#444 #997386
Кто что-нибудь реальное пилит под Core? В любительских целях или по работе?
998922
#445 #997458
Как C# взаимодействует с БД? Какие стандартные методы для этого есть и какие каноничные сторонние библиотеки для этого юзаются, как например hibernate у джавистов?
997464
#446 #997461
>>997385
+15, питоноолька.
#447 #997464
>>997458

> Как C# взаимодействует с БД?


Будь конкретнее. Вариантов много от sqlConnection до entityframework

> например hibernate


Фу таким быть
997482
#448 #997482
>>997464

>Будь конкретнее. Вариантов много от sqlConnection до entityframework


меня интересуют актуальные решения, которые широко используются.
997607
134 Кб, 400x267
#449 #997497
помогите как делать отчеты в этом говне на winforms, пробую ReportViewer но сложна, нада чтоб программно все можно было сделоть
997608
#450 #997502
Решил вкатиться, посмотрел веб через формы и мвц, вроде ясно понятно. Есть типовые задания, которые дают на собеседовании? Часто к асп просят жс?
997612
#451 #997519
Есть такая хуйня:

Convert.FromBase64String(message);

Вот, аргументом не принимается строка, которая не делится на 4.

Ну, я по-пацански сделал цикл
for (int i = 0; i< message.Length%4;i++) {
message += ' ';
}

Но тут одна проблема, если плюсовать " " - ебашит ошибку, но если вместо пробела дать "1" или что-то другое - всё нормально работает. Какого хуя? Может есть способ попроще это решить?
997595
#452 #997591
Где поспрашивать или посмотреть про хостинг для асп?
997601
#453 #997595
>>997519
while (message.Length % 4 != 0)
{
message += "=";
}
997651997701
#454 #997601
>>997591
Azure.
#455 #997607
>>997482
Широко используются все. Тут все дело в конкретной задаче.
sqlConnection для ультрабысрой скорости работы. Но нужно знать sql. EntityFramawork для тех кто упарывается по сущностям и любит прописывать всякие связи.
#456 #997608
>>997497
Что за отчеты?
Просто экселевская таблица?
Репортинг?
OLAP куб?
997646
#457 #997612
>>997502
Уровень собеседоания зависит от уровня прокачки конторы. Могут просто спросить принципы ООП и описать их словами. Могут предложить решить задакуна 15 минут. Могут дать тестовое задание на дом беги от этих пидорасов, могут и не взять даже если решишь а сами твое решение будут использовать.

> Часто к асп просят жс?


Могут спросить и тайпскрипт. Опять же, зависит от того на чем контора пишет.
#458 #997646
>>997608
Да что-то типо ексель таблица бы как в аксесе если знаешь
#459 #997651
#460 #997666
>>993288
yourBitmap == null
#461 #997671
>>993900
>>993919
не слушай ебанатов.
DataRow твой друг.
Конечно же, если твоя табличка при этом - DataTable, а не неведомая хуйня.

=======
Но если тебе нужно в сериализацию, то DataRow - путь в тупик. ЛУчше сериализовывать сразу DataTable.
#463 #997673
#464 #997701
>>997595
Ты не понял вопрос, мне интересно, чем заполнять массив, что бы оно работало. Простые пробелы не принимает.
997818
#465 #997818
>>997701
Чтоб работало что?
#466 #997890
Сап програмач. Используете ли вы на практике модную хуету вроде unit testing, dependency injection, mock objects?

Изучаю вот ASP.NET MVC и я охуел. Тратится уйма времени для настройки всей этой поеботы, за это время я мог бы уже пофиксить любые баги без ебучих юнит тестов и прочей хипстоты. Сука, такое ощущение что сам создаю проблемы и потом сам же их решаю.
997951997955
#467 #997951
>>997890
Та же хуйня от MVVM. Теоретически, если это будет какая-то невъебенная по размерам компания с огромным по размерам продуктом, то тогда МОЖЕТ БЫТЬ то что мы делаем сейчас кому-то и пригодится.
#468 #997955
>>997890
И здесь все-таки насрал, а. Ой мудель блять.
#469 #997979
Где скачать этот ваш The C# Player's Guide на русском
998080
#470 #998010
Добрый вечер! Помогите сварганить класс CircleList, такой, что при Count = 10, допустим, lst[10] == lst[0] == lst[-10].
Я вот так сделал:

class CircleList<T> : List<T>
{
new public T this[int index] => base[index % Count];
}

Но код

CircleList<char> alphabetlower = "abcdefghijklmnopqrstuvwxyz".ToList() as CircleList<char>;

не работает. Что поменять?
998043998272
#471 #998043
>>998010

> Что поменять?


Формулировку вопроса.
998086
#472 #998080
>>997979
Не читай это говно, бери Троелсена
#473 #998086
>>998043
То есть? Я имел в виду - как организовать класс.
998133
#474 #998133
>>998086
У тебя нихуя не ясно. Начиная с того, что дано, и заканчивая тем что нужно получить.
#475 #998262
enum Cell { Dead = 0, Alive = 1 }
Как превратить int[,] в Cell[,], учитывая что в массиве только 1 и 0?
998268
#476 #998268
>>998262
array.Cast<Cell[]>().ToArray()
возвращает Cell[][], а как настоящий двухмерный сделать?
#477 #998272
>>998010
Мозг поменяй. У тебя бракованый.

>"abcdefghijklmnopqrstuvwxyz".ToList()


Сделай вот этому говну GetType() и убедись, что у тебя List<Char>. а он в свою очередь внезапно ни разу не является CircleList<Char>. Поэтому строка

>as CircleList<char>


возвращает всегда null.

Как это пофиксить придумай сам. Моском надо пользоваться, иначе пиздец.
#478 #998413
>>992657
гугли .NET Micro Framework
998489
#479 #998489
>>998413
Он 8-битные процессоры поддерживает, Z80 например?
Народ, объяснить что делает этот код #480 #998535
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour {

Rigidbody2D rbody;
Animator anim;

// Use this for initialization
void Start () {

rbody = GetComponent <Rigidbody2D> ();
anim = GetComponent <Animator> ();

}

// Update is called once per frame
void Update () {

Vector2 movment_vector = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));

if (movment_vector != Vector2.zero) {
anim.SetBool ("iswalking", true);
anim.SetFloat("input_x", movment_vector.x);
anim.SetFloat("input_y", movment_vector.y);

} else {

anim.SetBool("iswalking", false);

}

rbody.MovePosition(rbody.position + movment_vector Time.deltaTime 120);

}
}
Народ, объяснить что делает этот код #480 #998535
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour {

Rigidbody2D rbody;
Animator anim;

// Use this for initialization
void Start () {

rbody = GetComponent <Rigidbody2D> ();
anim = GetComponent <Animator> ();

}

// Update is called once per frame
void Update () {

Vector2 movment_vector = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));

if (movment_vector != Vector2.zero) {
anim.SetBool ("iswalking", true);
anim.SetFloat("input_x", movment_vector.x);
anim.SetFloat("input_y", movment_vector.y);

} else {

anim.SetBool("iswalking", false);

}

rbody.MovePosition(rbody.position + movment_vector Time.deltaTime 120);

}
}
998552
#481 #998552
>>998535

>anim.SetBool ("iswalking", true);


>else {


>anim.SetBool("iswalking", false);



Говно этот код, а вообще судя по всему говорит анимации что персонаж идёт и скорость движения по х и у, перемещает его.
#482 #998616
Как в консоли перехватить выход из приложения (Environment.Exit) что бы выполнить некоторую операцию, довольно продолжительную?
998650
#483 #998638
[i,j] ?
Что это вообще такое?
998643998647
#484 #998643
>>998638
Копирование регистра j в регистр i.
#485 #998647
>>998638
2d array
#486 #998650
>>998616
Гугли про баиники
998652
#487 #998652
>>998650

>баиники



Чёбля?
998682
#488 #998682
>>998652
Про батники
Они же cmd файлы. Они умеют выполнять файл и на основе его выходного кода совершать какие то действия. Или не совершать.
998685
#489 #998685
>>998682

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

Я расчитывал что Exit это просто исключение, обложить все блоком finally в котором и провести эту операцию, но хз сработает или нет и если да, то корректно ли так делать.
998688
#490 #998688
>>998685
Exit это выход. К исключению никакого отношения не имеет. Если это твоя прога и ты устанавливаешь выходной код, то сам и пиши обработчик такого случая до того как вызвать Exit.
998693
#491 #998693
>>998688

Ясно, спс. Просто у меня много точек где есть эксит, придется их на выброс исключений поменять и в мэйне перехватывать.
998695
#492 #998695
>>998693
Что за хуйню я читаю.
Нахуй тебе исключения? Если это твой код, почему ты не можешь просто делать что нужно там где это нужно?
998722
#493 #998722
>>998695

Ну так нужно сделать одно и то же действие по зачистке перед выходом, ты предлагаешь каждый раз его переписывать перед каждым вызовом exit???
998724
#494 #998724
>>998722
Можно написать один метод который делает очистку и производит Exit и вместо выхода вызывать его. Можно даже упороться и переопределить Exit, если такое возможно.
998798
#495 #998792
Раньше обучался джаве, потом все проебал, сейчас перехожу в шарп. Но чет охуеваю от неудобства студии. Почему вывод по умолчанию в ебанов всплывающей консоли?
Как запилить автозамену? например я в эклипсе делал автозамену букв sout -> System.out.Println. Как например заменить в студии cwl на Conlsole.WriteLine ?
Почему вместо адекватного комментирования фрагмента через ctrl+/ нужно нажимать аж 2 комбинации клавиш?
И это я только азы постигаю.
998798998812
#496 #998798
>>998724

Ну да, похоже лучше просто метод отдельный сделать. Чето я с экцепшенами перемудрил, хотя они и непредвиденные исключения обрабатывали бы, но это все равно неправильно так как реакция на все ошибки должна быть предусмотрена, а лепить общий обработчик это не по науке.

>>998792

Ёбу дал? В студии охуенные поиск/замена с регулярными выражениями (ctrl+H)
998801
#497 #998801
>>998798

>Ёбу дал? В студии охуенные поиск/замена с регулярными выражениями (ctrl+H)


я имел ввиду настраиваемую автозамену на лету а не через ctrl+h.
999015
#498 #998812
>>998792

>Conlsole.WriteLine ?


cw + tab
998818
#499 #998818
>>998812
спасибо, но это вск равно пиздец
#500 #998825
Какое самое популярное ORM решение для C#? Entity Framework?
999003
#501 #998834
что означает get; set; в этой конструкции? Это типа геттер и сеттер не нужно реализовывать?
public string name { get; set; }
998850998854
#502 #998850
>>998834
Это ты запилил свойство. Реализовывать не обязательно, если не нужна особая логика на присваивание/считывание
#503 #998854
>>998834
да. компилятором неявно создается приватное поле и публичные get и set, в которых содержится базовая логика присвоения и чтения.
#504 #998922
>>997386
Пару либ и один проект на .net core. В принципе поддержка .net core в простых проектах добавляется парой строк.
#505 #998946
>>993000
[code lang="c#"]Booк B = new Book();
Booк B = new Book("Some Title");[/code]
#506 #999003
>>998825
Да. Некоторые используют dapper или что-то самописное, если нужна скорость. Некоторые nhibernate, но за не ничего не скажу.
#507 #999015
>>998801

Для этой хуйни решарпер нужен, правда нахуй она нужна вообще, проще напечатать.
#508 #999018
Для private констант что лучше использовать, const или readonly?
const поля в классе не создаются, это вроде #define из Си?
999185
#509 #999050
Попробовал джаву с его аналогом XAML, оказывается у них ситуация гораздо лучше - если создать проперти связанное с любым элементом на форме (например, public TextArea tstTextField;), то оно автоматически оповещает про изменения и автоматически изменяет значения по всему аппликейшн. В отличие от WPF, где нужно подключаться к INotifyProperty сервису и ебашить трехэтажные конструкции с лямбдами, и то не факт что заработает.
999051
#510 #999051
>>999050
Ах, ну и комманды там не нужно как-то реализовать - прямая привязка любой кнопки к методу в любом контроллере. Просто берешь и пишешь.
C# охуенный язык, но WPFам еще очень далеко до джавы и судя по всему, wpf уже никодга и не догонит - не обновляется уже 6 лет
999067999073
#511 #999067
>>999051
Ты про что? JavaFX?
999068
#512 #999068
>>999067
Ну да.
#513 #999073
>>999051
WPF и WinForms никому не нужны, сейчас все пишут для веба. Не видел ни одной вакансии, чтобы был десктоп на .NET. Потому и не будет никакого развития.
999077999103999161
32 Кб, 1302x420
#514 #999077
>>999073

>сейчас все пишут для веба


Ну давай расскажи мне, как пишут десктопные приложения тогда.
999080
#515 #999080
>>999077
И где здесь десктоп?
999081
#516 #999081
>>999080
Толсто.
#517 #999103
>>999073
А как сегодня делают ERP системы?
999133999144
#518 #999133
>>999103
Если не legacy говно - в виде веб-приложения.
Если legacy говно - оно на Java, а не на C#.
999145
#519 #999144
>>999103
Берут легаси на паскале, вешают на него модную веб морду на джаве и все это подпирают ехешники на шарпе. В результате у клиента заебатый вебинтерфейс, а что крутится на сервере никто не видит.
мимо-erp-разработчик
999145999146
#520 #999145
>>999133
>>999144
Ну ок, ты главный архитектор, и у тебя задача написать с нуля ERP для малого бизнеса в виде сети ресторанов, например. У сети ресторанов есть "серверная" пекарня у главбуха за столом, а в главных залах в разных частях города стоят клиентские пекарни со сканнерами штрихкодов/принтерами чеков/банковскими терминалами. На чем писать будешь?
999148999157999165
#521 #999146
>>999144

>Берут легаси на паскале, вешают на него модную веб морду на джаве и все это подпирают ехешники на шарпе


Почему бы всё не написать на .NET? Или всё на джаве?
999170
#522 #999148
>>999145

> Ну ок, ты главный архитектор, и у тебя задача написать с нуля ERP для малого бизнеса в виде сети ресторанов, например.


И ты такой выходишь на рынок и тебя ебет р-кипер написанный на говне под DOS. Но у которого 40000 ресторанов в активе.
999149999162
#523 #999149
>>999148
Рестораны были как пример, так что успокойся и ответь на вопрос.
999173
#524 #999157
>>999145
Visual FoxPro
#525 #999161
>>999073

>сейчас все пишут для веба



C точки зрения малолетнего долбоёба - безусловно.
999165
#526 #999162
>>999148

>тебя ебет р-кипер



Ебанат насмотрелся сериала кухня?
999165
#527 #999165
>>999161
>>999162
Ты тоже раз можешь ответить на вопрос про язык для подобной системы >>999145 раз начал выделываться.
999178
21 Кб, 500x283
#528 #999170
>>999146
Потому что мелкософту не сидится на месте и он хочет конкурировать ради конкуренции. Джава в принципе всех утсраивала? но мелкомягкие решили что могут лучше и таки смогли. Но всем уже похуй.
999171
#529 #999171
>>999170
Но это не ответ на вопрос "нахуй там паскаль".
999173
#530 #999173
>>999149
Конкретизируй вопрос. Ты описал пример с ресторанами достоточно подробно, но когда получил ответ по ресторанам решил притворится абстрактным.
>>999171
Паскаль та мпотому, что на нем все и написано. А всякие джавы только отображают данные. Можно напистаь все на джаве. Но это во-первых, человекочасы. во-вторых, джава-пидоры не понимают нихуя в исходниках на паскале. Для них это как скрежали мертвого моря. Вот и приходится тянуть все как есть, потому что оно работает.
999177
#531 #999177
>>999173

>во-вторых, джава-пидоры не понимают нихуя в исходниках на паскале


Стекломою объелся? Нынешние петухи с курсов жабараша может и не понимают, а в нулевых во всех энтерпрайзных вакансиях был стек Delphi + Java + Oracle
999180
#532 #999178
>>999165
Я не он, но выпендрюсь.
Итак ты хочешь писать софт под ретсоран. И вот проводишь анализ рынка и охуеваешь. Твои кассы с подключенными чекопечатающими машинками работают под DOS. При этом они замечательно тянут и винду, но нахуй на кассе лицензионная винда? Линукс? А какой дистрибутив? А он точно встанет на кассы в другом ресторане? А дрова на сканер встанут? А вы будете ебаться с натсройкой системы если что то пойдет не так? ты ведь уже освоил все азы работы в линуксе, да?
Итак твоя система это DOS. Остается выбрать язык. Питон и руби отпадают сразу, т.к. нет компилятора. Потом внезапно оказывается, что и джава проводит ебе по губам и шарп туда же. В итоге ты осознаешь, что тебе нужно изучать паскаль или хотя бы Сиб что бы написать что то, что будет работать у клиента. А ты этого нихуя не умеешь и быстро закрываешся.
999206
#533 #999180
>>999177
Вот кто в нудевых устроился, он так там и сидит. А в реальном мире среднестатистический соискатель это выходец из олчередного инкубатора в 10 курсов джавараша. некоторые сразу отказываются изучать шарп, т.к. они "умеют только джаву".
#534 #999185
>>999018
Лучше readonly.

У const есть подводный камень в необходимость перекомпеляции зависимых от константы модулей, а readonly модули подхватывает без этого.
Еще const нельзя применить к ссылочным типам.
#535 #999206
>>999178
Все это так ровно до того момента, пока ты не увидишь винду на терминале. Что будешь делать дальше?
999209
74 Кб, 604x453
#536 #999207
Друзья, как в с# сделать так, что по клику на виндовс форме изменялся цвет(это я сообразил) и одновременно с этим всё, что было до этого на форме стало невидимым. Грубо говоря, чтобы по клику вне текстбокса поменялся цвет внутри формы и стал невидимым сам текстбокс?
999212
#537 #999209
>>999206
А что надо делать? Открывать в терминале ресторан?
Конкретики давай.
999213
#538 #999212
>>999207

> чтобы по клику вне текстбокса поменялся цвет внутри формы и стал невидимым сам текстбокс?


someClickEvent
{
this.Color = Color.Kori4neviy;
this.textBox.Visibality = false;
}
999216
#539 #999213
>>999209
А что тебе не ясно? Еще скажи, что не знаешь, как выглядят терминалы в магазинах/кафе/ресторанах, и что не знаешь для чего они нужны.
999217
#540 #999216
>>999212
Спасибо большое!
479 Кб, 600x800
#541 #999217
>>999213
Как выглядит знаю. Но что ты хочешь чтоб я с ним делал?
999222
#542 #999222
>>999217
Ясно.
#543 #999276
Тред утонул или удален.
Это копия, сохраненная 11 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски