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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
6 Кб, 302x309
#2 #999281
И сразу вопрос. Пишу я, допустим, блекджек. Есть солюшн. Хочу создать класс для карт и класс для игроков. Куда класть файл с дополнительными классами? Создавать новый каталог? Класть в какой-то из существующих? Если создавать, то как назвать? Существует ли какое-нибудь соглашение, стандартные названия?
999285999793
#3 #999285
>>999281
Если не используешь паттерны вроде MVVM, то похуй куда класть. Сделай папку Classes и клади туда. Названия классов с большой буквы в одиночном числе. Папки во множественном.
999297
#4 #999297
>>999285
Спасибо!
45 Кб, 1015x567
#5 #999368
Друзья, возникла небольшая проблема. Как организовать поиск 1-ой и последней буквы в слове и поменять их местами?
#6 #999383
>>999368
Я нихуя не понял. Поиск или просто замена. Объясни что тебе надоо, желательно с примерами.
#7 #999401
>>999368
Для начала получаешь слово из строки. После узнаешь длину слова. Потом меняешь местами первую и последнюю буквы.
999795
#8 #999440
>>999368
Разбиваешь строку на массив символов, создаешь 2 локальные переменные, которым присваиваешь значения первого и последнего элементов массива, склеиваешь массив в строку. Вуаля
999795
#9 #999497
string str = "31535173";

char[] chars = str.OrderBy(x => x).Reverse().ToArray();
long number = long.Parse(new string(chars));

Можно сократить линком?
IEnumerable<char> -> char[] -> string -> long
#10 #999509
Сап анончики, может ли кто помочь написать небольшую прогу для анализа финансового состояния?
999537
#11 #999537
>>999509
Зависит от объемов твоего финансирования.
#12 #999608
999795
108 Кб, 1920x1080
#13 #999675
Вечер в хату, братишки.
В чем принципиальное различие между indexer и dictionary?
Вроде делают одно и тоже, только indexer более гибок.
В книге не очень заморачиваются объяснениями.
999701
#14 #999701
>>999675
Ты какую-то херню спрашиваешь.

indexer - синтаксический сахар для удобной итерации по содержимому объекта.
dictionary - струкстура данных типа ключ-значение.
999908
#15 #999793
>>999281

> Существует ли какое-нибудь соглашение, стандартные названия?



Как на галере взялись называть так и будешь типо GvnHelper, PDRHelper и т. д.
#16 #999795
>>999401
>>999440
>>999608

Ого, сколько экспертов в треде.
#17 #999846
сап мамкины архитекторы и простые разработчики, встала задача сделать небольшое winform app. Решил делать по MVP из - за абстракции представления (на будущее), так вот может кто пояcнить чо пихать в Model, понимаю что там должна быть бизнес логика, но в чем она заключается? Это, например, работа с бд, или же вообще вся логика??? поясните дауну
999899
#18 #999888
Раскидайте долбоебу вкрадце разницу между методом и свойтством, массивом и списком List<T>.
Когда и что лучше использовать. Например для реализации сранног оплейлиста лучше использовать что?
999889999897
#19 #999889
>>999888
А все вижу на метаинте этот ебанутый набор методов, свойств и интерфейсов на все случаи жизни.
#20 #999893
Создал через EF code first базу с таблицами. Теперь в энтити добавил кое-что, из-за чего должна добавиться еще одна таблица, а в прошлых удалиться столбец. Такое же через migration решается? Я его сделал, а он ничего не выполняет. В MigrationHistory пусто, запускаю через команду update-database. Я чего-то недопонимаю?
999986
#21 #999897
>>999888
список содержит в себе массив и предоставляет удобные методы и тд для работы с данными внутри
999907
#22 #999899
>>999846
Смотри, во view у тебя например форма, которая связана с презентором, в презенторе ты определяешь основную логику,например пусть там будут евенты от формы и основная логика, а в модели ты уже определяешь реализации конкретные. Например , тебе нужно определить свою логгер который в зависимости от типа сообщения который пользователь выбрал на форме , будет писать сообщение в разные штуки(На консоль,либо файл,можно еще в сеть).
Ты пишешь интерфейс ILogger в модели и пишешь в нем метод Log(string message), в конструкторе презентора принимаешь ILogger, и соединяешь евент формы(клик)с этим методом ILogger.Log. В модели пишешь уже конкретную реализацию интерфейса ILogger, например FileLogger, Console logger. Принцип работы - в конструктор презентора передаешь нужную модель(реализацию) и все. Если у других будет критика к мне , You are welcome. Надеюсь я понятно выразился
999991
#23 #999907
>>999897
Да. Спасибо.
Плюс еще он очень удобен, когда нужен динамический массив.
Хорошо сделоли.
#24 #999908
>>999701
Ок, понял. Я почему то подумал что одно это сахарок/обёртка для другого.
58 Кб, 500x500
#25 #999940
Нужно запилить бекэнд сервис для сайта. Чтоб он предоставлял всякую информацию из разных источников для последующего рисования пикрелейтед. Как получить информацию вопросов нет. Но вот как реализовать сам этот сервис пока не особо понимаю. Веб прогер сказал что ему в идеале подошел бы веб сервис, что бы он мог тягать страницу с параметрами. Это значит asp.net проект с одной страницей без авторизации? Или есть еще варианты?
#26 #999986
>>999893
В PM сначала включаешь миграции: Enable-Migrations
Потом добавляешь миграцию: Add-Migration
А потом уже обновляешь бд: Update-Database
#27 #999991
>>999899
Вроде как понял, спасибки
#28 #1000073
Добрый анон, можешь сделать неболшой пример как создавать нормальные Length prefix для TCP пакетов и как со всей этой хуетой разобраться?

перерыл весь гугол, нихуя нормального не нашел (
1000121
#29 #1000121
>>1000073

> нормальные Length prefix для TCP пакетов


просто первым байтом отсылаешь длинну массива. В чем трабла то?
#30 #1000140
Нахуя атрибуты нужны и как они работают? Объявил я кастомный атрибут и что теперь? Он же нихуя не делает.
1000250
#31 #1000250
>>1000140
Атрибуты - это мета-данные объекта, они ничего не должны делать.
Тебе теперь нужно объявить класс, который будет через рефлексию читать твой кастомный атрибут из объекта и что-то делать.
Обычно не пишут кастомные атрибуты, так как это сильно бьет по производительности, а используют уже готовые атрибуты и то, если без них нельзя обойтись.
#32 #1000255
Почему нет анонимных енумов?

class Card
{
public enum Suit { Spade, Diamond, Club, Hearth }
public Suit Suit;
}

Как принято решать такие конфликты имён?
1000310
#33 #1000261
Можно ли создать свойство с входным параметром?
#34 #1000263
C# параша, я так дохуя этих шарпов перекрякал, пиздец. Настолько изи блять крякается, нахуй вы на этом дерьме пишите.
#35 #1000276
>>1000263
Ты че утка что ли?
10002981000360
#36 #1000292
>>1000263
Твоя мамаша тоже самое спрашивала, когда я ей очко разрывал своим толстенным хуем.
1000360
#37 #1000298
>>1000276
проиграл
#38 #1000310
>>1000255
Другими именами
#39 #1000347
>>1000263
Чего ты там крякаешь, утенок мамкин. Нормальный софт ты хуй сломаешь.
1000360
#40 #1000360
>>1000347
>>1000292
>>1000276
Так-то он прав, декомпилировать шарповские экзешники и либы очень просто, достаточно запустить декомпилятор под дот нет и открыть в нем нужный файл. Всё.
10003851000658
#41 #1000385
>>1000360
А можно просто посмотреть в публичной репе где все нормальные люди ведут разработку.
#42 #1000405
Вкатываюсь в программирование. Можете рассказать, в каких областях используют C# для десктопа? Много ли вакансий? Или лучше в джаву сразу идти?
10004351000456
#43 #1000435
>>1000405
для десктопа в джаву
1001454
#44 #1000456
>>1000405
жаба и с# почти одно и то же, платформы разные, они конкуренты, что тебе больше нравится то и бери, c# быстрее развивается со всякими порой ненужными фичами, java консервативна
#45 #1000494
Есть лист с кучей элементов. Нужно из листа вытащить один элемент, так, чтобы он был удалён из листа, но был возвращен, аналогично js методу splice.
Поясняю:
Допустим есть лист hui с содержимым [1,2,3,4,5,6]
Нужно использовать метод, который удалит элемент и вернёт его. Например:

var elem = hui.Yoba(2);
elem == 3 // true
hui == [1,2,4,5,6]

Есть такой метод?
1000552
#46 #1000503
В чём разница между enum и структурой? Ну кроме того, что по енуму можно пройтись через foreach.
10005071000547
#47 #1000507
>>1000503

>между enum и словарём


Фикс.
10005471000571
#48 #1000547
>>1000503
>>1000507
Тебе стоит прочитать книженцию для совсем новичков. Загляни в шапку ньюфаг треда
#50 #1000571
>>1000507
enum задает перечисление , например цвета - синий,красный и тд. Каждому цвета сопоставляется число которое и передается программе когда ты вызываешь Color.RED (например 1), чтобы твоя программа понимала что за цвет ты выбрал,ибо она умеет работать с числами, а названия придуманы для удобства разрабов чтобы они не цифры писали а внятные имена. Словарь является хеш таблицей. При добавлении элемента в словарь(например строки) для нее вычисляется ее хешкод. Этот хеш код сопоставляется с индексом в массиве. И в этот индекс записывается данная строка. Хеш код построен так что для разных строк он генерирует свое число, так что он с высокой долей вероятности гарантирует что у двух разных строк будут разные коды, а соответственно разные индексы в массиве. Словарь дает возможность быстрого поиска,например пользователь вводит строку и тебе нужно узнать,есть ли она в хеш таблице(читай, в твоем массиве) или нет , если бы это был просто массив ,то тебе нужно было бы перебирать все элементы,что довольно долго, а в хеш таблице тебе нужно лишь вычислить хеш код строки которую ввел пользователь, а как мы знаем хешкод соответствует индексу в массиве, то тебе достаточно проверить - пустой этот индекс в массиве или нет. Словарь дает быструю вставку в коллекцию и поиск по ней. Enum предназначен чтобы к примеру ограничить выбор разработчика(к примеру ты определил что в твоей проге поддерживаются только красный и синий цвета, и ты хочешь чтобы другие не могли выбирать розовый,потому что он не поддерживается) таким образом пользователь или другой разработчик сможет использовать только те перечисления которые ты явно объявил.
#51 #1000572
В каком порядке будут вычисляться функции a, b и с в этом:
a() + b() * c()
выражении?

В учебнике пишут, что по спецификации подвыражения вычисляются всегда слева направо (т.е. это будет а, b и с), но тогда нахера нужны приоритеты операций, почему они только на значения распространяются?
Даже если так, то как быть с более сложными выражениями типа a() + b(c())?
10005811000583
#52 #1000575
Ананасы, а кто то знает реальное применение на проектах такой фичи как битовые флаги и вообще подразрядные операции? Ибо конечно классно что я могу писать в перечислениях Read=0;Write=1;ReadWrite=Read| Write; но нахуй это надо?
1000577
#53 #1000576
Что есть такого из ебанутых парадигм программирования, каких-то наркоманских (но не просто в виде используемых символов языков) языков, интересных, но малоиспользуемых методах? Посоветуйте что-то по этому поводу.
1000579
#54 #1000577
>>1000575

Очевидно в случае когда содержание сущности предметной области суть флаг, т.е. может содеражть одновременно множество включенныех признаков-флажков.
#55 #1000579
>>1000576
Какой-то хуёвый вопрос. Не буду на него отвечать.
1000581
#56 #1000581
>>1000579

Ответь на пиздатый >>1000572
#57 #1000583
>>1000572
компилятор видит операцию и помещают ее в стек последовательно например у тебя есть
Main(){
var L = a() +b(с());
}
Компилятор видит мейн и добавляет его в стек,на вершине стека висит пока что вход в метод мейн,пото создается переменная L, далее он видит a() добавляет сверху мейна метод а() и вычисляет его, потом видит b(), и видит что ему передается c() , теперь на вершине стека висит c(). В итоге видим такую "лестницу" из методов .
c()
b()
результат a
присваивание(=)
main()
Сначала в вершины стека достается c() и выполняется , и убирается из стека, далее выполняется b() и так же удаляется из стека, потом результат a() , далее выполняется операция присваивания , компилятор видит закрытие метода main() и в конце концов из стека удаляется метод main() и теперь он пуст, программа выполнилась
10005851000587
#58 #1000585
>>1000583

Т.е. автор (Барт де Смет, а не хуй простой) напиздел что вычисление производится слева направло, зачем он это сделал???
1000588
#59 #1000587
>>1000583

Даже по твоему описанию, почему в первом случае сначала будет вычислен a(), ведь компилятор знает при приоритеты, а значит сначала должен вычислить b и с?
1000593
#60 #1000588
>>1000585
так он честно сказал что слева направо если a()+b() то сначала в стек добавляется а и потом b, может он это имел ввиду , а вообще это все описано в CLR via C# рихтера, там небольшая глава этому уделена в самом начале , очень подробно расписано
1000591
#61 #1000591
>>1000588

Нет, там точно вся тройка имеется ввиду. Я тестик написал в консольке, даже скобки добавил:
a() + (b() * c())
и все равно вычисляется в порядке a, b, c
1000598
#62 #1000593
>>1000587
так а какая ему в хуй разница что вычислять первым , он сначала выполнит вызов всех методов по порядку а потом уже отправит результаты в стек для операндов
1000595
#63 #1000595
>>1000593

По спекам порядок строго слева направло, отсюда и вопросы.
#64 #1000598
>>1000591
суть в том что выполнение методов это одно, а выполнение выражения это другое, сначала выполняются все методы по порядку и вернутся результаты их значений , потому что компилятор не может на ходу формировать приоритет операций(+,- и тд) и последовательно их выполнять. Он сначала пробежит по выражению, составит стек вызовов методов по порядку, выполнит его, вернет значения и выполнит выражение подставляя то что вернули методы, при этом будет сформирован свой стек операндов , в котором и будет правильный порядок по приоритету , но вместо методов будут уже подставлены числа которые вернули методы, надеюсь я понятно выразился
1000602
#65 #1000602
>>1000598

А как быть с a(b(c))?
#66 #1000605
охуительные истории итт
#67 #1000626
а как ты передашь метод в метод? посредство делегатов? тогда другой вопрос.
Если ты имеешь в виду что метод A() в себе вызывает метод B() а тот в себе C(), то они будут выполняться C() потом B() а потом A()
1000632
#68 #1000632
>>1000626

Имелось ввиду последнее, выходит нет правила вычисления сначала методов слева направа, а все определяет сложность выражения. Мне просто не понятен тогда пиздёж автора.
1000636
#69 #1000636
>>1000632
ну ты же понимаешь что при выражении
a(b(c))) невозможно сначала вычислить a, не имея результата b и с, потому что они передаются в a как аргумент
1000643
#70 #1000643
>>1000636

Ну это первое что пришло на ум, когда я прочитал. Просто автор вроде толковый, я часто сначала списывал некоторые его фразочки как на фигуры речи или неточные, но потом оказывалось что он был абсолютно точен как в учебнике по матану и это я поначалу не уловил до конца суть. Поэтому подумал тут какой-то подвох есть.
1000651
#71 #1000651
>>1000643
возможно лажа с переводом если ты читаешь на русском и он имел ввиду порядок добавления в стек вызова или что то типа этого. Сам я книгу его не читал, так что пояснить не могу.
#72 #1000658
>>1000360
Прав не до конца. Ломают те программы, которые изначально не пытались защитить. Если взять более менее дорогую софтину, то после декомпиляции можно получить два ведра хуев.
1000732
#73 #1000675
>>1000263
Пиздить все умеют, а попробую что-нибудь из этого на изи крякнуть.
http://updates.buddyauth.com/
6 Кб, 669x176
#74 #1000714
Что за хуйня? Почему так?
10007171000961
#75 #1000717
>>1000714
Проеб где-то снаружи
1000961
#76 #1000732
>>1000658
Если у реверсера есть мозги он что угодно крякнет.
1000776
#77 #1000774
Поясните про base64 декодинг. Разбил я значит строку на части по 6 бит и конвертировал в base64:
"thi" = 011101000110100001101001 (24 бита)
011101 -> 29 -> d
000110 -> 6 -> G
100001 -> 33 -> h
101001 -> 41 -> p

Как теперь вернуть "dGhp" в "thi"? В гугле одни отсылки на MSDN и байтоёбы (мне нужно сделать перебором символов, без >> сдвигов)
1000832
#78 #1000776
>>1000732
У него была претензия конкретно к шарпу. Мол нахуй на нем пистаь, если он легко ломается. Хотя он еще ни одной серьезной программы не ломал.
#79 #1000816
Подкиньте ресурсов с задачками типа "создать класс с полями бла бла". Желательно начиная с массивов. Заранее спасибо
1000833
#80 #1000832
>>1000774
Ты что, это всё вручную писал? Нахуя?
https://ideone.com/YyXEru
#81 #1000833
>>1000816

Нахуя? Тебе заняться нечем???
1000852
#82 #1000852
>>1000833
А как программирование учат, лол? Прочитал - запомнил?
10008571000868
#83 #1000857
>>1000852
Сделай программку, которая будет трэкать время. То есть сколько времени потрачено в определенной программе. Если это браузер, то трэкай сайты. Времени даю неделю, можешь начинать.
1000858
#84 #1000858
>>1000857
Спасибо конечно за идею, но я реквестировал немного иное, чтоб делать задачки по мере освоения

>Желательно начиная с массивов

#85 #1000868
>>1000852

Читаешь нормальный учебник, сам себя контролируешь.
1000908
#86 #1000876
>>1000571
Спасибо!
#87 #1000908
>>1000868
Какие нормальные учебники с задачами?
1001030
#88 #1000961
>>1000717
>>1000714
Оказывается, там сразу после return true; стоял слэш "/", но Xamarin Studio по каким-то причинам его не отображала, но компилятор его видел и падал. Перезапустил студию, слэш стал виден.
1000962
#89 #1000962
>>1000961
Дали людям VS Community edition вместе с VS Code - нет, не хочу. Хочу жрать говно. Зачем вы так?
1000991
#90 #1000991
>>1000962

>VS Community edition


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

>VS Code


Он хорош для скриптов, но для компиляции не подходит - ни встроенного дебага, ни компилятора, только консолька и ебись как хочешь.
1000997
#91 #1000997
>>1000991

> Пока он запускается, можно успеть сходить попить чай, покурить и прочитать все треды на нулевой /pr/.


Ну так сходи, попей. Ты ее что, второй раз запускать будешь?

> ни встроенного дебага, ни компилятора


Дебаг - чек. Компилятор - чек.
10009981001051
#92 #1000998
>>1000997

>Пока он запускается, можно успеть сходить попить чай, покурить и прочитать все треды на нулевой /pr/.


Замерил с таймером - VS 2017 запускается 3 секунды.
1001000
#93 #1001000
>>1000998

Только на топовой пека без решарпера после повторного запуска, когда все закешировалось в оперативке.
10010011001005
#94 #1001001
Этот прав >>1001000
А еще у него гет
1001005
#95 #1001005
>>1001000
>>1001001
Ок, на виртуалке с решарпером 5 секунд.
#96 #1001030
>>1000908
в шапке все написано
#97 #1001051
>>1000997
студия запускается ~8-10 секунд
много чего зависает. правый клик по коду занимает 3-4 секунды, навожу на Add - 6 секунд. даже ctrl-x в первый раз занимает 3 секунды.
WPF ахуенен :))))
1001052
23 Кб, 491x128
#98 #1001052
>>1001051
вот спеки.
#99 #1001072
Как через фильтр убрать из словаря все элементы, в которых значение меньше определённого? Я пытаюсь вот так:

rating = rating.Where( player => player.Value < 20);

Но получаю ошибку:

>Error CS0266: Не удается неявно преобразовать тип "System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, int>>" в "System.Collections.Generic.Dictionary<string, int>". Существует явное преобразование (возможно, пропущено приведение типов).



В чём дело? Значение - число, сравниваю тоже с числом.
1001076
#100 #1001076
>>1001072
Вызови ToDictionary()
1001083
#101 #1001083
>>1001076
Спасибо!
#102 #1001187
Сап. На шарпе делал граббер для myvi.ru. Суть в том, что ему сначала дается ссылка на сам видос на сайте, из этой ссылки извлекается линк на плеер, из линка на плеер извлекается api-call, из него же, в конечном итоге, воруется ссылка на mp4. Ничего лучше не придумал, но и эта параша не работает, выкидывая мне вот это "412 - определенное клиентом предусловие не выполнено при оценке на веб-сервере". Причем если переходить по той же api-call ссылке в браузере, то все вполне работает и можно таки спиздить видосик. Закачивал сурсы при помощи WebClient() и Request-Response, но чет не вышло. Реквестирую помощь.
10011911001192
#103 #1001191
>>1001187
Хедеров не хватает. Глянь в консоли что они посылают за реквесты и сделай так же.
#104 #1001192
>>1001187

>из этой ссылки извлекается линк на плеер, из линка на плеер извлекается api-call


Поясни, как это происходит.
1001251
#105 #1001220
Посоны, есть Dictionary <string, int>, как извлечь из него все ключи, с помощью LINQ, имеющие максимальное значение, а не только один?
1001301
3 Кб, 373x103
21 Кб, 496x653
21 Кб, 619x622
#106 #1001251
>>1001192
Вот там раскидано. Если на словах, то подается прямая ссылка на видос, из нее берется ссылка на плеер сайта, из этой ссылк тащится api-call, из api-call тащится юрла на мп4. Я смотрел, какие запросы посылает мозилла и пытался подобные посылать, но ничего не вышло.
1001252
15 Кб, 1412x328
#107 #1001252
>>1001251
Вот автоматная грамматика для парса. На кусок кода где string dick и HttpClient() можете вообще внимания не обращать - я его забыл закомментить
1001264
#108 #1001264
>>1001252
Из сурса страницы с видосом вырвать <meta property="og:video:iframe" content="..." /> и перейти;
Из этого линка вырвать dataUrl:'..' и перейти
Оттуда вырвать http://fs.myvi.ru/... и перейти
Так формится линк на мп4 или флв, в зависимости от того, что там заливали
#109 #1001301
>>1001220
var max = dict.Values.Max();
var result = dict.Where(pair => pair.Value == max).Select(pair => pair.Key);
Что-то типа такого.
#110 #1001337
Надоело пердолиться с консолью, полез в ВПФ и охуел.
Где main()? Это ведь "точка входа" в программу, как без него?!
Любая программа это по сути просто луп, так? Где тут луп?
Стал гуглить. Оказывается, main() таки есть, но в генерируемом коде. И что теперь делать?
Помогай, анон. Я тупой. Я к такому оказался не готов и теперь не могу понять, как вообще что-то делать.
sage #111 #1001339
>>1001337

>ВПФ



Не лезь. Винформы бери.
1001341
#112 #1001340
Алсо, посоветуйте что-нибудь почитать по этой теме, минималистичное, с самыми основами, и ёмкое для тупого быдлана.
#113 #1001341
>>1001339
Почему? Везде пишут, что винформы устарели и какой пиздатый ВПФ.
1001346
#114 #1001342
>>1001337
Все это есть, но абстрагированно от тебя. В маине показывается MainWindow.
1001348
sage #115 #1001346
>>1001341

Если ты не пилишь какое то супер йоба пердоль-ГУИ то все нормально с винформами.
#116 #1001348
>>1001342
Зачем эта хрень предлагает мешать логику с гуем, если она такая навороченная?
1001350
#117 #1001350
>>1001348
Не предлагает. Ты её просто ещё не понял. Гугли mvvm применительно к wpf.
#118 #1001416
>>1001337
Есть 2 варианта: прописать в app.xaml стартовый uri и тогда wpf сам создаст главное окно, которое ты там укажешь, либо удалить это место и прописать в настройках проекта стартовую точку, в которой ты создашь главное окно руками или через ioc-контейнер.
1001451
#119 #1001421
>>1001337
Забей хуй на впф, там костыль на костыле, особенно если начнешь изучать MVVM. Кроме того, эта технология настолько дохлая, что никто не касался ее обновлений уже лет 5. Даже в этом треде тебе прямо говорят - для C# десктопа не существует, шарп нужен только в вебе, а именно ASP.NET, и в геймдеве, а именно Unity. Всё. Если очень хочешь пилить программки для десктопа, то тебе в джаватред.
#120 #1001450
>>1001421
Опа-опа, а откуда дровишки?
1001454
#121 #1001451
>>1001416

>прописать в app.xaml стартовый uri и тогда wpf сам создаст главное окно, которое ты там укажешь


То есть как в дефолтном WPF шаблоне?

>удалить это место и прописать в настройках проекта стартовую точку, в которой ты создашь главное окно руками


В сгенерированном коде куча всякой хуйни #препроцессорные директивы и прочее, оно нужно?
Алсо, Арр класс для чего?

>>1001421
Ты сделал меня грустить.
Почему жаву хейтят?
#122 #1001454
>>1001450
Из этого треда >>1000435 >>999073 >>999170 и это не мои посты, если шо
#123 #1001460
>>1001451

>Почему жаву хейтят?


Не знаю, но я после ебли с впф и мввм попробовал javafx и сделал свой вывод, совсем неприятный для любителей шарпа. Попробуй сам и узнаешь, хуле.
1001483
#124 #1001464
Кстати, впф не умер, а переродился в увп.
1001796
#125 #1001483
>>1001460
Я не программист так то. Так, совсем чуть-чуть.
Долго выбирал, шарп показался отличным выбором - и под винду, и под андроид, и УНИТИ, и - в будущем - годот.
Охуенно же.
А теперь опять хуй пойми. Мне ведь так, для себя.
#126 #1001499
>>1001451

>То есть как в дефолтном WPF шаблоне?


Да. В сгенерированный код вообще не лезь, нах он тебе нужен.
https://simpleinjector.readthedocs.io/en/latest/wpfintegration.html
Вот тебе пример, как свою стартовую точку впердолить с использованием ioc-контейнера. Без него все то же самое, только все объекты сам руками создаёшь.
#127 #1001634
>>999368
private static string swapBoundarySymbols(string s) {
if (s.Length > 1) {
return s[s.Length - 1] + s.Substring(1, s.Length - 2) + s[0];
}
else {
return s;
}
}
#128 #1001796
>>1001464
Его главная проблема это виндовс 10 онли.
1001838
#129 #1001803
>>999275 (OP)
Перепошу из перезвоним треда - сколько просить джуну в дс шарп ессесна
#130 #1001812
И снова кодировка.
Пытаюсь че то написать на ASP .Net, возникла проблема. Создаю локальную базу данных, создаю таблицу, заполняю, и почему то вместо русских символов в обозревателе таблицы выводит ????????? ???????. Тип полей стоит nvarchar, в чем еще может быть проблема??
10018151001822
#131 #1001813
>>1001421

>Кроме того, эта технология настолько дохлая, что никто не касался ее обновлений уже лет 5.


Последняя версия - июль 2015

>Если очень хочешь пилить программки для десктопа, то тебе в джаватред


Последняя версия javafx - март 2014

Может, тебе с такими свежими и актуальными знаниями укатиться отсюда, а?

>>1001451

>Почему жаву хейтят?


Из-за умников которые рассказывают про необновляющийся 5 лет впф и свежую javafx на замену
#132 #1001815
>>1001812
Сорян если не тот тред, просто не знаю куда еще.
#133 #1001822
>>1001812
Collation должен быть Кирилица CL_AS
#134 #1001838
>>1001796
А ещё мобильник и иксбокс. Тебе макос нужен или устаревший виндовс?
1002293
#135 #1001839
Хочу написать метод, который строит отчеты. В метод собираюсь передавать имя отчета, по этому имени метод должен взять модель нужного отчета и запрос для него, заполнить модель и передать все это в нужную вьюшку.
Затык идет на стадии объявления модели - пытаюсь объявить её через дженерики, а там в параметр нужно передавать тип. Его можно получить через рефлексию, но как-то это некрасиво, может есть готовый красивый паттерн для таких случаев?
#136 #1001850
>>1001337-кун снова выходит на связь.

Понял, что тэмплейт ВПФ создаёт сгенерированный Main(), вызывающий унаследованный от System.Windows.Application метод Run(). В Visual Studio через Go to implementation можно посмотреть только комментарии, а хотелось бы понять его реализацию. Можно где-то посмотреть код или хотя бы алгоритм в общих чертах? На msdn тоже ничего не нашёл.

Не понятно следующее. Программа "существует", пока исполняется main(), а тот, в свою очередь, завершается только после выполнения run(). Но программа из тэмплейта может выполняться бесконечно, значит, в run() - или в вызываемых им методах - должен быть какой-то цикл, типа while (true){...}, так?
1004581
#137 #1001994
Как генерировать куки для HttpRequest и использовать из потом? Чтобы добраться до одной странички на сайте, нужны куки, без этого выкидывает 412
1002037
#138 #1002037
>>1001994
Куки генерирует сервер и возвращает в заголовке Set-Cookie. Смотри свойство Cookies.
10020381002137
#139 #1002038
>>1002037
Куки можно сделать и самому, это обычный файл.
#140 #1002137
>>1002037
Спасибо за наводку
#141 #1002147
Господа, возникло пара вопросов, помогите разобраться. Сам я не программист и вкатываться никуда не собираюсь, скорее любитель и для души.

Есть класс, который опрашивает один девайс через каждые 5 секунд используя при этом unmanaged библиотеку, результаты опроса пишет в лог файл. В связи с этим вопрос, как бы мне точно организовать все это дело так, чтобы за эти пять секунд успеть обработать данные с девайса и записать в лог-файл, или хотя бы знать, что я не уложился в этот период (погрешности все дела). Если файл большой, то время записи ведь больше будет? Или библиотека по какой-либо причине долго будет обрабатывать. В какую сторону копать?
10024821002622
#142 #1002210
Как же у вас тут лампово, и как же мне нравится оппик. жаль, что Шарп годится только для веба, но при этом сервера на шиндовс это в принципе не очень хорошо
#143 #1002249
>>1002210

>Шарп годится только для веба


Обясни.
1002446
#144 #1002252
>>1002210
что лампового? дауны какие-то сидят. никто ничего не знает, но все кому-то что-то советуют.
1002446
#145 #1002276
>>1002210
Зачем тебе сервер на Windows? В Linux же все работает, и ASP.NET MVC, и Entity Framework, и веб-сервисы.
1002446
#146 #1002293
>>1001838

>мобильник


>В феврале 2016 Microsoft объявила о приобретении компании Xamarin. Вскоре после покупки Microsoft объявила о закрытии разработки моста Android и поддержки данных приложений в Windows 10. Главным направлением компании остался мост iOS.


Что-то не густо. Зачем он нужен без поддержки 80% всех телефонов?
1900 Кб, 300x164
#147 #1002373
Хочу шустро кабанчиком вникнуть в MySQL, что лучше почитать общего представления, желательно сразу с практикой?
Какие СУБД используются при работе с ASP.NET?
1002378
#148 #1002378
>>1002373

>что лучше почитать общего представления


Виктор Гольцман. MySQL 5.0
http://www.proklondike.com/books/dbmysql/golzman_MySQL_5.0_2010.html

>Какие СУБД используются при работе с ASP.NET?


Любые, имеющие ADO.NET провайдер.
1002382
#149 #1002382
>>1002378
Спасибо.

>Любые, имеющие ADO.NET провайдер.


А на что стоило бы обратить внимание?
10023951002456
#150 #1002395
>>1002382
На то, что надо больше делать и меньше говорить. Запили проект, в котором будет авторизация и доска для комментов. Лайт двощ, короче.
1002405
#151 #1002405
>>1002395

>авторизация


>Лайт двощ,

1002417
#152 #1002417
>>1002405
На двоще пссскоды это авторизация.
#153 #1002435
Справочник по Git посоветуйте.
1002452
#154 #1002446
>>1002276
Разве?
>>1002249
Для андроида есть вещи получше, для десктопа он так себе в принципе. >>1002252
А в других тредах что? Либо хуи за щеку, либо хуесосят язык, лол.
#155 #1002452
>>1002435
Чакон С. Штрауб Б. Git для профессионального программиста
https://www.htbook.ru/kompjutery_i_seti/programmirovanie/git-dlja-professionalnogo-programmista

Если хочешь графический клиент, то ставь SmartGit, но основные команды для консоли нужно знать.

Заодно посмотри и про Team Foundation Server:
https://msdn.microsoft.com/ru-ru/library/hh529827(v=vs.110).aspx
Это система управления проектами (задачи, багтрекер и т.д.), часто используется при .NET разработке. Раньше там была какая-то своя корявая система контроля версий от Микрософта, теперь перешли на православный git
1002510
#156 #1002456
>>1002382

>А на что стоило бы обратить внимание?



У всех популярных СУБД есть провайдеры.

Из бесплатных лучшая - PostgreSQL, чуть побыстрее, но беднее возможностями - MySQL (удобна для ORM, если не используешь триггеры, хранимые процедуры и т.д., а только CRUD).

Коммерческих основных 3 - MS SQL Server, Oracle Database и IBM DB2. Первая есть только под винду, остальные кроссплатформенны. У всех есть бесплатные урезанные версии (в основном ограничения по размеру базы).

Встраиваемые СУБД - Firebird (Embedded конфигурация) и SQLite, хранят базу в памяти и могут записывать/считывать из файла. Сервера у них нет (точнее, он в виде динамической библиотеки, подключаемой к приложению). Позволяют делать портабельные приложения с базами. SQLite считается более быстрым, но не полностью поддерживает стандарт SQL, не может работать в многопользовательском режиме (когда несколько юзеров подключаются к одной базе одновременно). Для C# к SQLite написан враппер (т.е. работа напрямую без ADO.NET), можно скачать на sqlite.org
10024941002511
#157 #1002473
Шарписты что там с asp.net по линух? Хотелось бы для бэкенда юзать язык с нормальным ООП и не такое говно как java.
1002495
#158 #1002482
>>1002147
Если ты по человечески объяснишь что нужно, то можно будет тебе по человечески ответить. Лучше сразу код покажи.
1002622
#159 #1002494
>>1002456

>Первая есть только под винду


Ну ты и соня, тебя даже вчерашний шторм не разбудил
https://www.microsoft.com/ru-ru/sql-server/sql-server-vnext-including-linux
#160 #1002495
>>1002473
g:asp net core
837 Кб, 739x1144
#161 #1002510
>>1002452
Пасибки.
#162 #1002511
>>1002456
Круто.
А почему работадатели обычно требуют только MsSQL?
Стоит ли на остальные обратить внимание?
SQLite то поприкольней вроде.
10025141002600
#163 #1002514
>>1002511
MS SQL родной для Сярпа.
1002600
544 Кб, 932x530
#164 #1002581
Технология ADO норм или для пидоров?
Что там с кросплатформенностью?
1002604
#165 #1002600
>>1002511
>>1002514
Родной для винды и от того же производителя. Обычно используют весь стек от микрософта: Windows, Office, .NET, SQL Server, Sharepoint. Считается, что там все уже отлажено и нет багов.
Для переносимого софта, когда базу нужно носить с программой, лучше SQLite.
#166 #1002604
>>1002581
ADO это для C/C++ и Delphi, ты про ADO.NET? Это в .NET главный фреймворк для работы с базами + ORM надстройка Entity Framework с LINQ поверх него. В Mono поддерживается.
Портированный с жабы NHibernate тоже использует ADO.NET.
Вообще проблемы с кроссплатформенностью в .NET в основном у десктопного гуя. У нас в конторе клиент для ERP системы из-за этого пишется на Eclipse/SWT (дерьмо полное), т.к. нужна поддержка Linux. Сейчас думаем, переходить ли на Qt или делать веб-интерфейс. А вот серверная часть, со всеми веб-сервисами, демонами и т.д. работает без проблем под любой ОС.
1002657
#167 #1002622
>>1002147
>>1002482
Грубо говоря так:

while (true)
{
var a = CustomClass.ReadStatus();
Thread.Sleep(5000);
}

Суть в том, что мне нужно делать опрос через каждые 5 сек, но ведь поведение метода ReadStatus по времени может быть разным, а это значит, что следующий опрос будет не через 5 сек, а 5 сек + время работы метода. А как мне точно то уложиться в этот период?
1002626
#168 #1002626
>>1002622
На языках со сборкой мусора реалтаймовые приложения писать нельзя, ибо время работы сборщика непредсказуемо.
Для измерения времени в WinAPI есть функция QueryPerformanceCounter, которую можно импортировать в C#:
https://msdn.microsoft.com/ru-ru/library/bb397808(v=vs.90).aspx
#169 #1002628
>>1002626

> На языках со сборкой мусора реалтаймовые приложения писать нельзя


Чому же. Реалтайм есть разный.
1002633
#170 #1002633
>>1002628
Как можно определить время выполнения операции, если GC может запуститься когда угодно?
1002643
#171 #1002643
>>1002633
А должны ли это быть это ровно 5 секунд по атомным часам? Гугли системы мягкого реального времени
1002958
#172 #1002657
>>1002604

>NET в основном у десктопного гуя


Это WPF этот бесовской?

>или делать веб-интерфейс.


Чому бы и ни.
Можно и на андройде если что запустить.
1002661
#173 #1002661
>>1002657

>Это WPF этот бесовской?


Угу. У WinForms тоже свои баги.
1002663
#174 #1002663
>>1002661
переходишь на джаву
@
problem solved
1002668
#175 #1002668
>>1002663

>Трудно приготовить еду на кривой плите


>Начинаешь есть говно.



Джавадебилы не меняются.
1002669
#176 #1002669
>>1002668

>Трудно приготовить еду на кривой плите


>Начинаешь готовить на ровной плите


>Называют дебилом


Чёт мда, хех.
1002671
#177 #1002671
>>1002669
Плита это ось.

Хелоуворлд не тормозит?
1002672
#178 #1002672
>>1002671
Ну так скажи, в чем у тебя была проблема и мы сравним по факту.
1002673
#179 #1002673
>>1002672
Я вообще не тот анон.
#180 #1002693
WPF в хату. Как там прибиндить дата грид что бы юзер мог добавлять строки? Вроде все правильно сделал, привязал к ObxervableCollection а нихуя.
10026941002708
#181 #1002694
>>1002693
Бедненький. Тебя разве не предупреждали о том, что WPF работает как полено?
1002704
#182 #1002704
>>1002694

Выбора нет, не на вимформс же писать в 21-м веке.
1002706
#183 #1002706
>>1002704
Офк есть.
1002707
#184 #1002707
>>1002706
Жавашизик ты опять на связь выходишь?
1002708
#185 #1002708
>>1002707
С# охуенный язык, наверное лучший из всех. Но вот когда доходит до дестопа, то WPF сосет. Ближайший пример вот >>1002693 и такой хуйни в джаве внезапно нет.
1002710
#186 #1002710
>>1002708
Какой такой хуйни, поехавший? Ты даже его кода не видел, а уже решил что это косяк WPF.
#187 #1002711
Опять пиздюки набежали. Чего мне датагридом делать-то, что бы юзер мог добавлять строки???
1002742
#189 #1002745
>>1002626
Если уж на то пошло, то реалтаймовые приложения можно запускать только на реалтаймовых осях... и, внезапно, можно писать на языках с GC - только GC должен поддерживать реалтаймовость (а именно - возможность квантовать время сборки)
#190 #1002810
>>1002742

Ты чеге думаешь, я совсем дурак что ли?

Разобрался сам, я юзал кастомные шаблоны данных, задал CellTemplate, а CellEditTemplate забыл, так что WPF не знал что ему новую строку вводят, поэтому тупо ее не создавал.
Теперь у меня другя проблема, мой кастомный темплейт один как для показа ячейки, так и для ее редактирования - поэтому одна и та же портянка кода DataTemplate дублируется. Как то можно во дном месте прописать, а потом повтороно использовать?
Более того, в гриде два столбца одного типа, так что этот шаблон 4 раза пришлось скопипастить. Здесь тоже можно что-то сделать?
1002823
#191 #1002823
>>1002810
<Grid>
<Grid.Resources>
<DataTemplate x:Key="YobaTemplate">
....
</DataTemplate>
<DataTemplate x:Key="YobaEditTemplate">
....
</DataTemplate>
</Grid.Resources>
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Allo" CellTemplate="{StaticResource YobaTemplate}" CellEditTemplate="{StaticResource YobaEditTemplate}"/>
<DataGridTemplateColumn Header="EtoTy" CellTemplate="{StaticResource YobaTemplate}" CellEditTemplate="{StaticResource YobaEditTemplate}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
1002849
#192 #1002849
>>1002823

Я как-то так делал, у меня соседние колонки при редактировании одно и тоже отображали.
1002857
#193 #1002857
>>1002849
Кхм.. это значит по ты отображаешь одно и то же свойство в обе колонки... а покажи свою верстку/данные/чего хочешь получить
1002994
#194 #1002874
>>999275 (OP)
https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md
Джавапидоры, скажите - вы этим реально пользуетесь? Нахуй это в сишарпе?
#195 #1002924
Шапку обновите, ауты.
1003161
#196 #1002958
>>1002626
>>1002643

Спасибо аноны
#197 #1002994
>>1002857

Ты прав, за портянками разметки пропустил что внутри шаблона контрол биндится к данным, а там надо имя свойствта цели прописать. Выходит вся идея по обобщению фейл, раз у каждого столбца своё свойство привязки.
#198 #1003161
>>1002924
А не то шо сука.
#199 #1003174
Так как джавапетухи слишком высокомерные спрошу тут.
У джавапетухов есть аналог Визуал студии?
Как понимаю комунити версия интелджи идеа не поддерживает вебразработку?
Ну и нахуй она нужна тогда, такая ахуенная?
Пиздец это надо уметь перескачить по жлобству майрософт.
1003257
17 Кб, 800x274
#200 #1003257
>>1003174
Настоящий жабопетух кушает сладкий хлебушек.
#201 #1003353
ASP.NET MVC.
Как мне передать в View модель из [HttpGet] метода, ввести свое значение в поле модели и получить её в [HttpPost] методе? Проблема в том, что после отправки формы все поля, кроме введенного в текстбоксе, обнуляются.
Да, я неофит в аспе.
1003363
#202 #1003363
>>1003353
сделай hidden поля со значениями с модели
Html.HiddenFor
но это хуйня, если много полей,
все зависит от задачи
#203 #1003389
Я тут написал небольшой консольный блекджек. Можете глянуть? Что нужно исправить, что доработать? Где проёбы в архитектуре?
https://github.com/Perekoter/Blackjack
1003399
#204 #1003399
>>1003389
1) Naming things и конвенции
1.1) Зачем нужна папка Classes? Почему структура директорий не соответствует структуре неймспейсов?
1.2) Почему названия методов у тебя идут с маленькой буквы? Конвенция в C# - названия методов начинаются с заглавной буквы
1.3) Намешанные в одном месте табы и пробелы - расстел в любом приличном обществе

2) Структура программы
2.1) Почему почти вся логика программы находится в Program.cs? Погугли SRP.
2.2) Метод Start занимает овер 100 строчек, его нужно разбить на подметоды.
2.3) В коде тут и там мелькает if (player.User). Означает что кто-то обосрался с абстракциями
2.4) Опять насчет абстракций: class Player выглядит так, как будто он должен имплементировать интерфейс IPlayer и иметь две реализации: HumanPlayer и AiPlayer

3) Code style
3.1) В программе понамешен Linq и императивный for. Linq - хорошая идея. Императивный for ведет к багам.
3.2) Сложение строк - плохая идея. Почитай про интерполируемые строки и string.Format()
3.4) Магические цифры в коде (например, 21) должны быть константами. В противном случае заебешься менять это магическое значение.

Баги было лень искать, и так проблем хватает.
1003414
#205 #1003408
Аноны, планирую вкатываться бэкендом говнокодить на аспе, но тк нужно понимать что там у нас во фронте, то начал учить хтмл, ксс и жс. Какого уровня владения всей этой парешей будет достаточно чтобы уже приступать к аспу?
#206 #1003414
>>1003399
Спасибо! Буду фиксить.
#207 #1003447
Схарпобоги, какую книжку или мануал можно почитать, чтоб потом создать приложение с кокошечками для управления настройками безопасности и конфиденциальности Internet Explorer? Гугл что-то меня понять не может :3
1003459
#208 #1003456
Вопрос снят. Микрософт.Вин32, ключи реестра. Если вдруг кому-то тоже надо было
#209 #1003459
>>1003447

> приложение с кокошечками для управления настройками безопасности и конфиденциальности Internet Explorer


gpedit.msc
#210 #1003573
Анончики, внезапно вопрос, а разработанный проект на asp.net MVC можно скомпилить в бинарник? Или оно не сервере так и развертывается в открытом виде с исходниками?
1003639
157 Кб, 822x666
#211 #1003598
Для кого эта книга? В ангельский могу, но уходит дополнительный труд на понимание текста, через 5-6 страниц проработки материала, желание продолжать в 0 пропадает.
1003771
#212 #1003639
>>1003573
Проект компилится и бинарники заливаешь на веб-сервер
#213 #1003770
Нужно удалить определённое количество "+" с конца строки, c#.
Если строка равняется "Ывфывфывфыв+++" - удаляется 3 плюса с конца. Как это сделать?

У меня есть такая хуйня, но она не работает.
while (finalText[finalText.Length - 1]=='+') {
finalText.Substring(0, finalText.Length - 1);
}
1003781
#214 #1003771
>>1003598

> Для кого эта книга?


Что за книга-то?

> В ангельский могу, но уходит дополнительный труд на понимание текста


Моги лучше.
1003784
#215 #1003781
>>1003770
Строки иммутабельны, балда. Substring, Add и прочее возвращают новую строку.

public static string RemovePlusesAtTheEnd(string s)
{
if (string.IsNullOrEmpty(s))
{
return string.Empty;
}

var first = s.Length - 1;
while (first >= 0 && s[first] == '+')
{
--first;
}

return s.Substring(0, first + 1);
}
1003824
66 Кб, 547x764
#216 #1003784
>>1003771
Обложку я прочитал, но с текта орнул. Неплохо знал плюсы и алгоритмы несколько лет назад, сейчас мало что помню, надеюсь в процессе вспомнить.
1003785
#217 #1003785
>>1003784
Ну, хз, по-моему, лучше Рихтера до сих пор ничего не написано.
1003830
#218 #1003824
>>1003781
пиздец, что это?
Console.WriteLine("hello world+++".TrimEnd(new[] { '+' }));
1003834
#219 #1003830
>>1003785
Имеет ли смысл uwp упарывать? Или всем плевать на чем ты формочки клепаешь?
10038401003848
#220 #1003834
>>1003824
Воистину, что-то я совсем ебанулся.
#221 #1003840
>>1003830
Формочки на UWP можно запускать на всех виндах, виндоус фонах, сёрфесе и хуящике-один. Маколинукса в планах пока нету, но уже в плане поддерживаемых платформ лучше, чем другие технологии от МС
#222 #1003848
>>1003830
Если пилишь что-то для своих нужд и у тебя 10 винда или хочешь что-то изучить с заделом на отдаленное будущее, то имеет.

>>1003840

>Формочки на UWP можно запускать на всех виндах


Только на 10.
1004080
#223 #1003931
Как в OpenFileDialog дать дефолтную папку? Что бы по стандарту сразу открывалась нужная мне папка.
1003936
#224 #1003936
>>1003931
.InitialDirectory
#225 #1003938
>>1003840

>лучше, чем другие технологии от МС


Xamarin же
#226 #1004080
>>1003840
>>1003848
Спасибо. Решил сперва с остальным разберусь, потом уже с формами буду развлекаться.
137 Кб, 860x560
#227 #1004090
Начал читать книгу. Там говорят выбрать XAML, а в моей вижуал студии его нету? Где его брать? Что скачать?
10040961004377
#228 #1004096
>>1004090
В самой студии скачай с онлайна.
1004103
#229 #1004099
>>999275 (OP)
Я тут на днях увидел котлин в действии и охуел какой он пиздатый, джетбрейнс любят шарп, но ебучей джавапараши слезть не могут, поэтому вдохновились шарпом и сделали пиздатейший язык.
Решил по старой памяти на ведро написать что-нибудь и просто охуел. Не от охуенности языка, а от того, как ебучая параша jvm не дает этому пиздатому языку простора - везде тебе встречается ебаная хуйня, например, хуевейшие дженерики.
ПОсле этого я гораздо сильнее стал понимать, что шарп - самый ахуенный язык. Правда в последнее время развитие медленное стало, но все равно.
1004118
150 Кб, 1680x906
#230 #1004103
>>1004096
где скачать?
1004113
#231 #1004113
>>1004103
Инсталлятор запусти.
1004136
#232 #1004118
>>1004099
Да просто не так много чисто языковых фич, которые нужны прямо вот вообще срочно и которых в шарпах до сих пор нет. А в том, что касается окружения, MS ебашит вовсю: открытие исходников, roslyn, .net core, asp.net core, ef core, uwp, .net standard, поддержка линупса, полная переработка портала с документацией.
1004393
199 Кб, 1680x906
#233 #1004136
>>1004113
А что именно качать?
1004282
#234 #1004282
>>1004136
Ебать ты тупой, какой тебе код. Твой вопрос решается за 2 секунды в гугле.

>Наблюдатель


> Но к сожалению ни там, ни там пункта Windows Store.


Вероятно при установки Visual Studio не все галочки были поставлены а значит и
нет нужных templat'ов.
1. Найди в списке установленных программ Microsoft Visula Studio, выбери её и нажми "Изменить"
2. Проверь выбраны ли соответствующие компоненты Windows Store App SDK или как-то так.
Если они не выбраны то выбери их и все автоматом установятся. Название компонента я
возможно не точно написал, сейчас нет возможности глянуть, только вечером.

Add:
Windows Store App уже устарели. Теперь это Windows Universal App ну
и template теперь назвывается Visual C#->Windows->Universal->Blank App (C#)
это про 2015ю студию.
Не благодари, но код бросай.
1004690
46 Кб, 1003x429
#235 #1004367
Нид хел, дрочу асп по тутору моша. Пилю кастомный валидатор и столкнулся с пикрил, у него в курсе все заебок, причем саксес - это бул, а оно мне ебет мозг. Подскажите в чем трабл?
1004373
#236 #1004373
>>1004367
Все, разобрался, как всегда хуй с синтаксисом, я доверился интелисенсе и она возвращала бул, а нужно было валидейшонресалт.
#237 #1004377
>>1004090
Книга устарела и store app уже всьо. Там выкладывали первую главу бля ювп отдельно, но она на инглише только.
1004381
#238 #1004381
>>1004377

>главу бля


главу для
слоуфикс
#239 #1004393
>>1004118
для меня киллер-фичи котлина это сахарок в виде дата классов и обилия конвеншенов, это избавляет от тонн кода для поддержки dto, плюс ебля за null'ы. С этим шарп бы стал языком богов, а не языком царей.
10044111004421
#240 #1004411
>>1004393
Поддвачну адеквату
#241 #1004421
>>1004393
Вообще по поводу отсутствия развития языковых фич я погорячился. В 7.0 довольно много масштабных изменений.
#242 #1004431
Как закодировать byte[] в string и вернуть обратно в byte[] без потерь? Encoding.UTF8.GetString, Encoding.UTF8.GetBytes проебывают или пидорасят часть информации.
#243 #1004475
>>1004431
Мб у тебя не utf-8? Что проебывается-то?
мидл 2 года опыта не понял.
#244 #1004483
>>1004431
base64
#245 #1004581
>>1001850
Ага, есть внутри такой цикл, принимает сообщения от винды всякие типа выключения, событий клавы и мыши, таймеры - если есть обработчик - передается управление ему. Например жамкнул ты клавишу Х, процессу пришло сообщение WM_KEYDOWN, обработчик внутри Application нашел активное окно и передал ему Key_Down, в окне нашелся активный фокус клавиатуры в текстбоксе - событие ушло ему, текстбокс вызвал функцию, которая перевела код клавиши и состояние клавиатуры в букву Х, поменял Text а потом дернул твой обработчик TextBox1_OnKeyDown. Как только обработка закончилась - происходит обработка следующего события, либо поток засыпает до следующего события. Поэтому если ты что-то тяжеловесное нафигачишь в обработчике - приложение визуально "повиснет"
1005187
#246 #1004584
>>1004431
Convert.ToBase64String, Convert.FromBase64String из коробки (можно кнешно нагуглить еще реализации base16,base32, ascii85, но стандартно - base64)
Про использование кодировок забудь, они для только string->byte[]->string, не наоборот, потому что в любой кодировке есть наборы байт, которые символам не соответсвуют
1004599
#248 #1004663
Хороший язык ведь. Эх, жаль для десктопа не взлетел.
#249 #1004690
>>1004282
Ну и где эти галочки ставить? Что-то не вижу. Можешь пальцем ткнуть?
#250 #1004720
Если бы не майкрософт, вам бы всем пришлось быть джавадебилами.
1004838
#251 #1004763
Помогите пожалуйста, почему в этом моменте, форма на отрез отказывается проверять условие? Первый раз с классами работаю, не спал всю ночь...

public partial class WorkerForm : Form
{
public bool FirstSecond;

public WorkerForm(string WorkNameData1, string WorkNameData2, bool FirstSecond)
{
InitializeComponent();

if (FirstSecond)
{
WorkerNameSurnameLabel.Text = WorkNameData1;
OnStandByTaskTextBox.Text = Convert.ToString(Worker.ActiveTaskCounter);
FinishedTaskTextBox.Text = Convert.ToString(Worker.FinishedTaskCounter);
}
else
{
WorkerNameSurnameLabel.Text = WorkNameData2;
OnStandByTaskTextBox.Text = Convert.ToString(Worker.ActiveTaskCounter2);
FinishedTaskTextBox.Text = Convert.ToString(Worker.FinishedTaskCounter2);
}
}
10048651005208
#252 #1004838
>>1004720
а если бы не сан?))))
1004887
#253 #1004865
>>1004763
Может дело в FirstSecond и FirstSecond?
абсолютли нюфак
#254 #1004887
>>1004838
Дальше бы писали на pl/sql, пока ibm или кто-нибудь не решил бы поднять бабла.
#255 #1004933
Ку, ребята, подскажите что делает и что обозначает (double)?
Вот код для примера:
Console.WriteLine((double)s / k)
1004948
#256 #1004948
>>1004933
Приведение типов же
1005195
#257 #1004959
Для чего рекомендуется использовать WCF и актуален ли он еще, или есть альтернативы получше?
#258 #1005000
почему установщик вижл студио использует json?
1005003
#259 #1005003
>>1005000
Стандарт де-факто.
1005007
#260 #1005007
>>1005003
стандарт стандартом, а хули они свое то не используют?
#261 #1005013
Салют, нужен совет. Есть задача сделать клиент серверное приложение. Функционал примерно такой: просто чат с регистрациейклиенты авторизируются/регистрируются через сервер, и передают друг другу сообщения опционально вложения. Что мне лучше использовать для реализации серверной части? WCF? Голые сокеты/классы TCP/IP? Или есть что нибудь еще более модное и современное?
1005015
#262 #1005015
>>1005013
Клиент-серверный чат - вчерашний день. Делай чат на основе mesh сетей.
1005017
#263 #1005017
>>1005015
Я не хочу йобу выкатывать, я просто на крестах последние 3 месяца писал, а тут работу нашёл на сисярпе, вот сейчас за неделю хочу навыки освежить, потому и решил написать клиент серверный чат, но до этого, в общем то, никогда ни с чем кроме именованных труб не работал, а Socket/TCP вроде очень старые ребята, и я хотел узнать, не потеряли ли они свою актуальность. Хотя про mesh сети посмотрю, если ты конечно не тралишь.
#264 #1005151
В Джава разработке, вроде, слышал есть правило типа один класс - один файл.
Или типа того.
В Шарпе есть что то подобное?
10051661005167
#265 #1005164
Есть код в формах на подобии такого:
var control = new MyControl();
control.SomeEvent += SomeHandler;
form.Controls.Add(control);
//потом мне нужно его убрать
form.Controls.Remove(control);

Ворос, ГЦ же вычистит контрол, если я не отпишусь от события? Нужно ли диспозить контрол, если я не добавлял работу с неуправляемыми ресурсами?
1005171
#266 #1005166
>>1005151
Да, в шарпе тоже такое практикуется.
#267 #1005167
>>1005151
Компилятор ругаться не будет, но на код ревью в нормальной компании заставят переделывать.
1005188
#268 #1005171
>>1005164
Контрол - IDisposable. Внутри у него есть анменеджед ресурсы по умолчанию, даже если ты не писал их. Контрол диспоузить надо.

Control будет держать form живой, если не отписаться от эвента. Устраивает такое - не отписывайся. Однако, если нужно четко контролировать время жизни всех объектов - лучше отписаться.
#269 #1005180
Кто знает, как организовать ввод в TextBox число в двоичной и восьмеричной Сис. сч. ?
#270 #1005187
>>1004581
Спасибо.
Значит я не совсем тупой.
#271 #1005188
>>1005167
А как? Бить на partial'ы по каким-то принципам?
10051911005650
#272 #1005191
>>1005188
Прочитать про SOLID, начать применять на практике.
#273 #1005195
>>1004948
То есть переменную s преобразуем в тип double?
#274 #1005208
>>1004763
а какое бляйдь значение у FirstSecond?
#275 #1005213
Ку, ребята, подскажите что делает и что обозначает (double)?
Вот код для примера:
Console.WriteLine((double)s / k)
Получается double в скобках преобразует переменную s в тип double?
1005214
#276 #1005214
>>1005213

> преобразует переменную s в тип double


Да.
1005217
#277 #1005217
>>1005214
Благодарю
#278 #1005257
using System;

namespace Example
{
class Programm
{
static bool IsSimple(int n)
{
for (int i = 2; i <= n / 2; i++)
{
return !(n % i == 0);
}
}
static void Main(string[] args)
{
DateTime start = DateTime.Now;
int k = 0;
for (int i = 2; i < 1000000; i++)
{
if (IsSimple(i))
{
k++;
Console.WriteLine("{0}{1}", k, i);
}
}
Console.WriteLine(k);
DateTime finish = DateTime.Now;
Console.WriteLine(finish - start);
}
}
}

Какого хера пишет, что "Programm.IsSimple(int)": не все ветви кода возвращают значение.?
#278 #1005257
using System;

namespace Example
{
class Programm
{
static bool IsSimple(int n)
{
for (int i = 2; i <= n / 2; i++)
{
return !(n % i == 0);
}
}
static void Main(string[] args)
{
DateTime start = DateTime.Now;
int k = 0;
for (int i = 2; i < 1000000; i++)
{
if (IsSimple(i))
{
k++;
Console.WriteLine("{0}{1}", k, i);
}
}
Console.WriteLine(k);
DateTime finish = DateTime.Now;
Console.WriteLine(finish - start);
}
}
}

Какого хера пишет, что "Programm.IsSimple(int)": не все ветви кода возвращают значение.?
#279 #1005259
>>1005257

>static bool IsSimple(int n){


>for (int i = 2; i <= n / 2; i++)



>IsSimple(2){


>for (int i = 2; i <= 2 / 2; i++)


> uhm...

1005263
#280 #1005263
>>1005259
Выручил, спасибо огромное
#281 #1005283
Аноны, подсобите, получил тестовое задание на джуна.
Нужно написать приложение, которое может загружать и редактировать большие файлы.

Дополнительно: Пакетная обработка нескольких файлов.

Я так понимаю это обработка в несколько потоков?

При каждом новом срабатывании кнопки USE я должен создавать новый поток, для обработки другого файла, во время обработки текущего. Какую инфу почитать насчет ресурсов, что бы дополнительные потоки не создавались, когда есть не занятые уже созданные?
10052851005288
#282 #1005284
>>1005257
Во-первых, скидывай код в читабельном виде. Отступы не просто так придумали.
Во-вторых, у тебя там не все ветви кода возвращают значение.
1005315
#283 #1005285
>>1005283

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


Сделай так что бы незанятых не было. Поток делает свое дело и в конце совершает сиппоку. И все тогда будет хорошо.
#284 #1005288
>>1005283

> Я так понимаю это обработка в несколько потоков?


Пакетная обработка означает возможность указания нескольких файлов для редактирования. Что именно это значит со стороны твоей компании — хуй знает. С многопоточностью напрямую это не связано, но на винтах с дорогим I/O она поможет тебе выиграть по времени из-за NCQ и считывающей головки, гуляющей по более рациональной траектории, конечно.

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


Я не понимаю, как тебя с таким нулевым опытом вообще рассматривают как кандидата. Начни хотя бы с пула потоков.
#285 #1005315
>>1005284
Объясни второе
1005327
#286 #1005327
>>1005315
В IsSimple нет return в случае, если for цикл не выполнился ни разу.
#287 #1005349
>>1005257
Потому-что сука prime а не simple
1005376
#288 #1005376
>>1005349
Что ты вообще написал?
1005393
#289 #1005393
>>1005376
зет хиз инлиш из лайк хи хэд мгимо финишд
1005396
#290 #1005396
>>1005393
без которого ты, разве что в 1с вкатишься
1005397
#291 #1005397
>>1005396
ноу ноу, ю донт андерстенд. кновинг инлиш из грейт, бат зет гай даз нот кнов зе ворд прайм, вич из аппроприэйт ту намберс. инстэд оф ит хи юзес симпл
#292 #1005463
Перекатываюсь на шарп с питона. В IDE питона была встроенная документация, которая позволяла быстро проглядеть синтаксис команд и справку по каждому классу.
Какая есть такая же простая документация по C#? Лезть каждый раз в интернет или на docs.microsoft не очень удобно.
10054641005467
#293 #1005464
>>1005463
В VS есть Intellisence, охуенно работает, расскажет тебе всё и про всех.
#294 #1005467
>>1005463
Есть то ли плагин, то ли в настройках шняга, чтлбы по ф12 открывалась мсдновская документация по методу/классу/вотэвэр. Сам не пользуюсь, так как 500к/нс принципал фриланс архитект, но недавно наткнулся на скрины - выглядело удобно. Короче гугли анон вкатывайся в го, нахуй тебе этот сишарп.
#295 #1005640
Сап, аноны

Помогите, пожалуйста, с задачей на шарпе:

В массиве из 10 целых чисел подсчитать сумму элементов, более чем в 2 раза превышающих минимальный.

Чет сложно. Как это вообще сделать?
#296 #1005646
>>1005640
А в чем проблема? Ты не знаешь как массив создать?
#297 #1005650
>>1005188
Руками - ни по каким.
Партиал нужен если есть код от автогенерации некоторым инструментом, в который лучше руками не лезть. Другие применения возбраняются.
#298 #1005660
>>1005640
var summa = massyv.Where(a => a > 2*massyv.Min()).Sum();
1005705
#299 #1005663
>>1005640
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
summa = sum([x for x in a if x > 2*min(a)])
#300 #1005674
>>1005640

class VasyanLabaPidorMain
{

void HuySasiMain()
{
int Min, Number;

Random PishovNahuy = Random();
int[] Sich = new int[10]; // Массив

for(int i = 0; i<10; i++)
Sich = PishovNahuy.Next(1, 30); //Заполнение случаными числами от 1 до 30

Min = Sich[0]; //Присвоение переменной минимального значения первый элемент массива

for(int i = 0; i<10; i++) //Вывод Массива на экран
Console.Write(Sich + " ");

Console.WriteLine();

for(int i = 1; i<10; i++) //Сравнивает Минимальную переменную с элементами массива от 2го до последнего.
{
if(Sich < Min)
Min = Sich;
}

Console.WriteLine("Минимальное значение массива: {0}", Min);

Number = 0;

for(int i = 0; i<10; i++) //Ну ты понел
if(Min == (Sich / 2) )
{
Console.WriteLine("Элемент в два раза больше минимального {0}", Sich)
Number += Sich;
}

Console.WriteLine("Сумма элементов в два раза больше минимального{0}", Number);

}

}

Как то так. Говнокод не проверял, если что.
Если помогло подкинь деньжат на Battle.Net Krema#2375, по возможности. Почувствую себя гомофрилансером 100К/парсек. Ну и на овердроч накоплю может когда нибудь.
#300 #1005674
>>1005640

class VasyanLabaPidorMain
{

void HuySasiMain()
{
int Min, Number;

Random PishovNahuy = Random();
int[] Sich = new int[10]; // Массив

for(int i = 0; i<10; i++)
Sich = PishovNahuy.Next(1, 30); //Заполнение случаными числами от 1 до 30

Min = Sich[0]; //Присвоение переменной минимального значения первый элемент массива

for(int i = 0; i<10; i++) //Вывод Массива на экран
Console.Write(Sich + " ");

Console.WriteLine();

for(int i = 1; i<10; i++) //Сравнивает Минимальную переменную с элементами массива от 2го до последнего.
{
if(Sich < Min)
Min = Sich;
}

Console.WriteLine("Минимальное значение массива: {0}", Min);

Number = 0;

for(int i = 0; i<10; i++) //Ну ты понел
if(Min == (Sich / 2) )
{
Console.WriteLine("Элемент в два раза больше минимального {0}", Sich)
Number += Sich;
}

Console.WriteLine("Сумма элементов в два раза больше минимального{0}", Number);

}

}

Как то так. Говнокод не проверял, если что.
Если помогло подкинь деньжат на Battle.Net Krema#2375, по возможности. Почувствую себя гомофрилансером 100К/парсек. Ну и на овердроч накоплю может когда нибудь.
#301 #1005682
>>1005640
Ну если найти минимальный и потом все, которые в два раза, то это 2н, это линейный рост, оптимально, наверное. Можно ещё отсортировать за nlogn, взять первый элемент, по log n бинарным поиском найти первый элемент, больший чем в два раза первого и сложить все, начиная с него и до конца. Но это хуепляски и дольше, хотя на собесе наверное понравится кому-нибудь.
1005684
#302 #1005684
>>1005682
На собесе что, васянские лабы дают?
1005721
#303 #1005686
>>1005674

>Console.Write(Sich + " ")

1005689
#304 #1005689
>>1005686

>Console.Write(Sich + " ")



Фикс.
#305 #1005693
>>1005674
А блядь.
Ебанная вабакаба убрала [ i ] из-за ебанной разметки.
Спасибо АБУ.

Ну пиздец.
#306 #1005705
>>1005660

>massyv.Min()


Будет на каждой итерации вызываться, что даст сложность Н^2

Линк убивает мозг, а вслед за ним и производительность.
1005709
#307 #1005706
Сап, аноны

Помогите, пожалуйста, с задачей на шарпе:

Есть два целых числа. Нужно их сложить и вывести результат на экран.

Чет сложно. Как это вообще сделать?
#308 #1005709
>>1005705

>> 2017


>> писать на шарпе


>> думать о производительности

1005748
#309 #1005721
>>1005684
Я про подход к решению через жопу
#310 #1005748
>>1005709

>юнити-пограммист на шарпе


>не думать о производительности


МАМ ТОРМАЗИТ УБОГИЙ УНИТЕ А НЕ МОЙ ГОВНОКОД
#311 #1005758
Дали тестовое задание написать rest сервис на C# и ASP.NET Web Api. На сишарпе и дотнете никогда не писал. Работал только с жавой и жсом. Что почитать посоветуете чтобы по-быстрее вникнуть?
#312 #1005781
>>1005758
Сколько времени на выполнение?
10057841005785
sage #313 #1005784
>>1005781
Я не он, но тоже хотел бы это освоить, времени в обрез. Не знаю английский
#314 #1005785
>>1005781
Около недели, но там простенькое задание на самом деле:
Implement the REST-service using C# and ASP.NET Web Api that retrieves, saves, and returns data (JSON-objects) of forms.
Нашел msdn гайд: https://msdn.microsoft.com/en-us/library/ms228602(v=vs.90).aspx

Насколько он годный?
1005791
#315 #1005791
>>1005758
Мастером создаёшь проект - веб сайт, оставляешь галку веб апи.
Далее по любым гайдам на ютубе, там сложно что-то сделать не так.
>>1005785
Гайд нормальный.
1005804
#316 #1005804
>>1005791
Спасибо, няш.
21 Кб, 445x394
#317 #1006070
Работяги, вечер в хату. Уже полтора года вкатился в ентерпрайз на C#.
Хочу у вас попросить норм источников про многопоточность, а то не шарю в ней нихуя, а потрогать хочется
sage #318 #1006109
>>1006070
Какая же ты все-таки мразь - пошел работать, а язык даже нормально не удосужился выучить. Сука.
1006131
sage #319 #1006111
>>1005758
В анус своей мамаши-шлюхи вникни.
1006131
#320 #1006113
>>1006070
Удаляешь все проекты написанные на C#, устанавливаешь F#. Гопоточность сразу во все ворота полезит.
#321 #1006131
>>1006109
>>1006111
Нихуя вы пидоры злые. Такой контраст сразу после C/C++ тредов
10061331006944
168 Кб, 418x610
#322 #1006133
>>1006131
Я точно не уверен, но попробуй поискать в этой книге.

Там вроде отдельные главны про синхронность/асинхронность и многопоточность.

Мимо >>1005674 кун.
10083331008538
#323 #1006134
>>1006070
Какой же дебил, пиздец, мне понадобилось 2 недели чтобы изучить шарп с нуля после С++ и сходу использовать async/await, но работу на нём мне естественно не предложил никто.
10061361006180
#324 #1006136
>>1006134
Че там изучать? Это же сиподобная пораша. Синтаксис и с нуля за три недели изучается.
А вот всякие фреймворки, паттерны солиды и прочий синтаксический сахарок приправленный ООП парашей это конечно подольше.
#325 #1006176
>>1006070
Рихтер для понимания. Там старо, но понятно и достаточно глубоко.
Concurrency in c# cookbok - современные веяния и примеры использования
#326 #1006180
>>1006134

> многпоточность


> async/await


> но работу на нём мне естественно не предложил никто


Ну, я даже не знаю.
#327 #1006359
Антуасы,нужна помощь.
Нужно написать тест и потом интегрировать его в сайт,как это сделать?
1006363
#328 #1006363
>>1006359
Сначала написать, а потом интегрировать
1006364
#329 #1006364
>>1006363
Спасибо
#330 #1006365
Хелп, пишу тестовое на джуна, приложение для обработки больших текстовых файлов. В отчете надо написать, какие программные средства необходимы для запуска и работы программы. Что написать, кроме шо нужна винда и фрейворк 4?
1006367
#331 #1006367
>>1006365
так и напиши. Приведи минимальную версию фреймворка. Можно еще проверить, под какими версиями винды пойдет.
1006369
#332 #1006369
>>1006367
А как? И как узнать нагрузки на оперативу/процессор. Никогда раньше не сталкивался с этим.
1006373
#333 #1006370
>>1006070
Сколько денег получаешь? В каком городе работаешь?

Про многопоточность, в общем-то, в любой книге из шапки можно прочитать. Не пытайся копипастом разобраться из чужого кода. Хреново это, не понимать сути.
1006944
99 Кб, 960x640
#334 #1006373
>>1006369

> И как узнать нагрузки на оперативу/процессор.


Визуал студии F11 нажми, 300К в секунду мамина.
#335 #1006620
Нужен хелп, есть сайт, в который я могу вбить инфу, после этого появляется окно со скачкой джейсон файла.
Моя цель написать программу которая позволит через консоль вбивать эту инфу и читать инфу с нашего джейсон файла.
Подскажите как это ебнуть или хотя-бы ссылку где можно почитать каким это образом делается, всем заранее спасибо.
#336 #1006621
Нужен хелп, есть сайт, в который я могу вбить инфу, после этого появляется окно со скачкой джейсон файла.
Моя цель написать программу которая позволит через консоль вбивать эту инфу и читать инфу с нашего джейсон файла.
Подскажите как это ебнуть или хотя-бы ссылку где можно почитать каким это образом делается, всем заранее спасибо.
#337 #1006623
>>1006621
сорян за дабл запрос, лагануло шот
#338 #1006625
>>1006621
сорян за дабл запрос, лагануло шот
#339 #1006627
>>1006621
сорян за дабл запрос, лагануло шот
#340 #1006670
>>1006621
сорян за дабл запрос, лагануло шот
#341 #1006691
>>1006621
сорян за дабл запрос, лагануло шот
#342 #1006842
>>1006621
сорян за дабл запрос, лагануло шот
#343 #1006944
>>1006370
50 / дс2

>>1006370
>>1006070
>>1006131
Спасибо, работяги!
#344 #1006990
аноны, ye;ty годный пример с многопоточностью, а именно интересует что-то такое:
есть метод из которого в цикле запускаются потоки и после цикла выполняется некоторое действие. так вот действие должно выполниться только после завершения всех потоков.
т.е. примерно так:
while(..)
{
TaskFactory.StartNew(()=>DoSomething());
}
TaskFactory.WaitForAll();//вот тут должно быть что-то, что ждет завершения всех потоков из цикла
DoSomethingAfterAlllThreadsEnded();
1006991
#345 #1006991
>>1006990

>нужен годный пример


быстрофикс*
1007004
#346 #1007004
>>1006991
Есть годный для этого класс Parallel с тремя статическими методами
Вот из моей старой лабы кусок кода
http://ideone.com/Oi3RaD

Там выполняются все указанные действия параллельно, и только когда все action закончатся, вызывается блаблабла.CopyTo();

Помимо инвоук там есть еще for и foreach. Их синтаксис я не помню, но он такой же простой как и у invoke.
1007012
#347 #1007012
>>1007004
большое спасибо, анон, обязательно ознакомлюсь. мб посоветуешь, где про это можно ещё почерпнуть немного полезной инфы
1007015
#348 #1007015
>>1007012
Вообще, насколько я помню, про Parallel больше полезной инфы, чем по тем же тредам и таскам возможно, потому что применение гораздо более узкое, или я к моменту изучения параллел уже матерым стал в многопоточности/асинхронности
Вообще, можешь посмотреть здесь. Вроде достаточно подробно и ясно написано, учитывая что описывать там не так много.

https://metanit.com/sharp/tutorial/12.4.php
https://professorweb.ru/my/csharp/thread_and_files/level2/2_6.php
https://professorweb.ru/my/csharp/thread_and_files/level2/2_7.php
https://msdn.microsoft.com/ru-ru/library/system.threading.tasks.parallel.invoke(v=vs.110).aspx
1007023
#349 #1007023
>>1007015
спс, гляну
#350 #1007160
Есть годный туториал по наследованию в C#? Чтобы поясняли за правильные имена полей/методов и давали правильные разрешения сразу. Хочу начать в правильное ООП, чтобы класс Human наследовался от Mammals, а тот в свою очередь от Animals. Ну вы поняли.
151 Кб, 1948x858
#351 #1007161
>>1007160
Спрашиваю для того, чтобы не получилось вот так.
WCF #352 #1007226
Вопрос по WCF. Я правильно понимаю, что у клиента в объектах классов службы с атрибутами [DataContract] нет смысла вызывать методы/конструкторы, потому что у клиента он выступает просто контейнером и никакой реализации там нет? Это всё при условии, что я классы не добавил в ссылки у клиента.
#353 #1007310
>>1007160
Годный туториал по наследованию в C# - никогда не наследуйся от классов. Имплементируй интерфейсы.
10073221007340
#354 #1007318
Время тупых вопросов. Пишу крестики-нолики для произвольного размера поля (не суть). Есть двумерный массив представляющий игровое поле: gameField[i,j] i - индекс строки, j - индекс столбца (обычно ведь так?). Есть морда на винформс, а ней как известно x - вправо, y вниз. Так вот, при обработке нажатия как лучше писать ...gameField[y,x]... (выглядит не оч, обычно [x,y]), ...gameField[x,y]... (выглядит норм, но под капотом получится неявное транспонирование - высота - это ширина, ширина - высота а пол это лава). Как лучше?
1007473
#355 #1007320
А какой смысл ставить тяжелую Visual Studio, а не например сравнительно крохотный и легкий SharpDevelop?
Получится ли написать серьезный современный проект на последнем?
#356 #1007322
>>1007310
Лол, и ты мне предлагаешь в каждом классе (Player, Zombie1, Zombie2......, Dog21....) прописывать одинаковый метод Die()?
10073261007471
#357 #1007326
>>1007322
Нет, он, скорее всего посоветует тебе таки прочитать хотя бы базовое ООП и будет прав.
(разделяй логическое и программное представление, все твои собаки, зомби и игроки - один класс с разными параметрами и компонентами(учи агрегацию), а не куча классов)
10073341007340
#358 #1007334
>>1007326

>все твои собаки, зомби и игроки - один класс


А туториалы говорят, что это все разные классы, которые наследуются от Animal, например. Хочешь сказать, они врут?
10073401007342
#359 #1007340
>>1007334
>>1007326
>>1007310
Обсуждение сферических классов вне контекста задачи не имеет смысла.
Мимокрок.
10073431007345
#360 #1007342
>>1007334
Да, всегда бесило что этим поясняют ООП, это совершенно не соотносится с реальностью, утка - не наследник животного, утка - это животное у которого есть (звукоиздающий объект = клюв), (объект перемещения = утиные лапы и крылья) ну и мозг - мозг с поведение = поведениеУтки
10073451007346
#361 #1007343
>>1007340
Всё равно подход с зомби, дог и плеер неверен, это можно сравнить с разными окошками, у одного серая рамка и чёрный фон, у другого белый фон и синяя рамка, они одного класса, но разные параметры. Да и посыл в том, что если тебе нужно что-то писать много раз, то скорее всего на самом деле стоит разобраться с абстракциями.
#362 #1007344
Скажите а как пишутся, например, всякие библиотеки которые напрямую работают с водом выводом.
Например вот библотека Басс.ДЛЛ, или дотнетБассДЛЛ.
Вот как она написана?
Я могу такую же сделать на шарпе?
И вообще зашквар ли использовать сторонние беблиотеки в проектахъ Для портфолио или лучше все и все писать самому?
Ну вообще интересно как писать подобные шутки, анпример для работы с сетью. Может есть какая то книжка?
1007474
#363 #1007345
>>1007342
Давай тогда туториал, в котором это объясняется. Собственно, я с этого вопроса и начал.

>>1007340
Ну я вполне реальные классы описал. Это я с юнити пытаюсь подружиться, и хочу сейчас определиться со структурой классов для игровых персонажей. Так что да, зомби, игрок, собака это все реальные примеры с методом Kill().
1007354
sage #364 #1007346
>>1007342

> утка - это животное


>duck is animal


>is


>IS


>утка - не наследник животного

10073491007355
1037 Кб, Webm
#365 #1007349
#366 #1007351
Есть ли какая-нибудь разница в работе асинхронных методов консольных приложений и ASP.NET MVC?

В консольном этот код работает:
public void Index()
{
DoThingAsync().Wait();
}

В веб-приложении страница зависает:
public ActionResult Index()
{
DoThingAsync().Wait();
return View();
}

С этим кодом так же зависает:
public async Task<ActionResult> Index()
{
await DoThingAsync()
return View();
}
#367 #1007354
>>1007345
Хз где взять туториалов, слишком много источников читал, везде по чуть-чуть понимал, могу пояснить почему твои зомби плохо.

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

С поведением тоже просто, твой килл просто вызывает плей деасаниматион, который ты просто делаешь полем персонажа. Типо такого. Юнити же как раз со своей компонентной системой этому способствует.
1007522
#368 #1007355
>>1007346
Неправильно, я имел в виду инстанс животного, ты приебался к словам, там из контекста ясно
#369 #1007471
>>1007322
Абстрактный класс для общих методов и их реализации, интерфейсы просто для общих методов.
1007522
#370 #1007473
>>1007318
Ну, можешь делать массивы массивов, а не двумерный массив. bool [][] gameField вместо bool [,] gameField.
Есть мнение, что jagged array более производительные, чем multidimensional по причинам оптимизации CLR для одномерных массивов:
https://stackoverflow.com/questions/597720/what-are-the-differences-between-a-multidimensional-array-and-an-array-of-arrays
https://stackoverflow.com/questions/4648914/why-we-have-both-jagged-array-and-multidimentional-array
https://stackoverflow.com/questions/468832/why-are-multi-dimensional-arrays-in-net-slower-than-normal-arrays
#371 #1007474
>>1007344
Нихуя тебя не понял, какой еще басс.ДЛЛ/дотнетбассДЛЛ.
DLL в .NET и DLL в компилируемом в машинный код языках - разные вещи. Как и exe у .net и у крестов, например.
Большие сторонние библиотеки - не зашквар. Во многих конторах используют всякие EF и прочие фреймворки/АПИ. Криптографию тоже рекомендуется брать уже готовую и проверенную (типа crypto++), а не писать самому.
Как писать - просто берешь и пишешь, хули тут думать. У C# есть как классы для реализации своей хуйни, так уже и готовый WCF. Книги хуй знает, не умею читать.
1007514
#372 #1007507
>>1007160
Если писать по солиду, то наследование очень редко когда реально нужно и полезно
1007522
#373 #1007514
>>1007474
поясни за WCF, очень часто вижу в вакансиях требование к этой хуйне, так и не вижу адекватного описания, везде очень абстрактно. За 2 года разработки сложного облачного сервиса так ни разу и не слышал эти слова в нашей команде.
1007517
#374 #1007517
>>1007514
Говно ебаное. Типа мультиплатформенная технология удаленных служб. Даётся три стула на выбор: named pipes для одной машины, TCP для интранета при условии, что клиент на .net и http для любых машин с клиентами на любом языке (что, в общем то, превращается в ASP.NET). Сам сижу сейчас разбираюсь, и все вопросы/упоминания в этом треде про WCF были от меня. Вообще, на вид гибкая вещь, но бывают моменты, когда клиентское приложение падает из за службы вообще хуй пойми из за чего. Короче, если не хочешь рисковать серверными решениями от коммьюнити или сам настраивать гибкий сервер, то можешь выбирать WCF.
#375 #1007519
>>1005674
Нахуя столько лишнего?
#376 #1007522
Я снова здесь.

>>1007354

>и через xml создавать разные виды врагов


>просто вызывает плей деасаниматион, который ты просто делаешь полем персонажа


Вот тут совсем не понял. Остальное, если понял правильно, то выходит мне нужен один класс на всех живые существа? Значит делать в нем несколько разных конструкторов под каждый вид?

>>1007471
И? Я так и собирался делать, но мне сказали, что не стоит.

>>1007507
А в моем случае?
1007601
#377 #1007523
1ы2ыук
66 Кб, 496x700
#378 #1007524
Аноны, купил пикрелейтед. Книга охуеная не спорю. Но есть НО - в ней нет нахуй заданий для самостоятельного выполнения ? Как так ? как я должен учить язык и при этом не писать код свой (не тот что в книге)?
Так вот в чем мой вопрос - может я туплю и где-то есть задания соответствующие этой книге ? Или мне самому себе задания надо придумывать ?
1007525
#379 #1007525
>>1007524

>C# 4.0


>купил


зачем
1007559
#380 #1007559
>>1007525
Это по сути все-равно основы, 5.0 - 6.0 особо изменений не было.
Купил потому что книга всяко удобнее пдф, да и б.у. цена была сладкой.
1007562
#381 #1007562
>>1007559

>книга всяко удобнее пдф


Приходи когда по книге изобретут полнотекстоый поиск.

>5.0 - 6.0 особо изменений не было


Нихуя себе заявление. Одно появление async чего стоит.
#382 #1007566
>>1007562
основы-то те же
10075751007597
#383 #1007575
>>1007562
Если что в книгах обычно бывают в конце словарь терминов со ссылками на страницы.
>>1007566
двачую
1007578
#384 #1007578
>>1007575

>Если что в книгах обычно бывают в конце словарь терминов со ссылками на страницы.


На дворе сорок первый век, а эти лудиты всё еще листают страницы.
#385 #1007597
>>1007566
Ну как тебе сказать. Про async вообще то веское замечание сказано >>1007562
Товарищ по 4.0 научится плодить громадные конструкции для асинхронности со всякими wait и прочими, когда есть async await. Также всякая удобная интерполяция строк в 6.0, фишка в виде паттерн метчинга для switch в 7.0, кортежи оттуда же.
1007708
#386 #1007601
>>1007522

>Вот тут совсем не понял.


Ну с xml можешь пока забить, это просто возможность делать в игре врагов, заполняя параметры в файлах, а не редакторе, так удобнее.
Про анимацию, у тебя есть поле у класса, это поле анимации смерти, функция смерти берёт эту анимацию и проигрывает её.

И нет, тебе нужны не разные конструкторы а один, твои все существа будут создаваться примерно так:
Creature zombie = new Creature("zombie.skin", ZombieAttack, ZombieMovement, ZombieAnimations);
Creature dog = new Creature("dog.skin", DogAttack, DogMovement, DogAnimations);
и так далее, то есть один конструктор делает разных существ, это конечно приближённый вариант, тебе надо как-то передавать все эти параметры в код, юнити позволяет же префабы делать, в которых в поля можно и спрайты перетащить и цифры написать.

Просто смотри в чём суть, ты путаешь представление в твоём понимании, и представление для компьютера, все живые существа для него - одно и то же, это просто что-то, у чего есть анимация, скин и поведение.

Вообще я очень хуёвый учитель, и в юнити это сложнее пояснять изза компонентной системы, в которой по сути всё это нахуй не нужно, всё есть гейм обджект, хочешь чтобы он двигался - присоединяешь логику движения, хочешь чтобы кусался - присоединяешь компонент атаки, хочешь чтобы он ещё был сундуком - присобачиваешь компонент-контейнер. Наследование там только под капотом, где каждый компонент - наследник компонента, с именем, парентом и прочими, можешь по нему оценить, насколько похожи их различия между MeshRenderer и BoxCollider на твои между зомби и собакой.
1007666
#387 #1007666
>>1007601
Спасибо тебе за детальное пояснение, а то обычно на такие вопросы в тредах посылают в гугл или сразу нахуй. Займусь сейчас, пожалуй, генерацией карты, а потом еще вернусь к персонажам.
#388 #1007680
Скажите, пожалуйста, почему
float tenth = 0.1F;
float one = 1F;
WriteLine(one - 10F tenth);
выдаёт -1,490116E-08, а
float one = 1F;
WriteLine(one - 10F
0.1F);

выдаёт 0?
1007688
#389 #1007681
Шарпаны, вот допустим есть сгенерированный код.
Ну т.е по типу t4 text template, только я генерировал его с помощью методов которые сам написал.
Т.е все это выглядит так:

namespace YobaApllication
{
class Programm
{
static void Main()
{
Console.WriteLine("Hello Yoba");
}
}
}

Сейчас он генерируется в консоль или в тексбокс, если угодно.

А как его скомпилировать?
1007735
#390 #1007688
>>1007680
Скажите, пожалуйста, почему
float tenth = 0.1F;
float one = 1.0F;
WriteLine(one - 10F tenth);
выдаёт -1,490116E-08, а
float one = 1F;
WriteLine(one - 10F
0.1F);
выдаёт 0?
10076891007694
#391 #1007689
>>1007688
Сучья разметка.
#392 #1007694
>>1007688
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

Смотри какая статья есть годная про флоаты.
1007700
#393 #1007700
>>1007694
Спасибо, заодно и в Reading попрактикуюсь.
#394 #1007706
Шарпаны, есть што годное для понимания DI и IoC с примерами?
10077091007710
#395 #1007708
>>1007597
это далеко не основы языка, если сразу с нуля в асинки и сложный сахар погружаться, то нихуя не понятно будет. Пускай научится синхронный код писать, а потом уже в асинки углубляется.
1007716
#397 #1007710
>>1007706
Dependency Injection in .NET Симана.
Его блог
http://blog.ploeh.dk/tags/#Dependency Injection-ref
1007712
#398 #1007711
>>1007709

>Сервис локатор


блэт майкрософт
1007713
#399 #1007712
>>1007709
>>1007710
Спасибки
#400 #1007713
>>1007711
В глаза ебусь, там не про сервис локатор.
Хотя нахуй они описывают реализацию IoC?
#401 #1007716
>>1007708
Ну так то основы, даже самые обоссаные конторы требуют асинки от джунов дс конечно
1007719
#402 #1007719
>>1007716
ясен хуй, но ты же не будешь изучать физику с теории относительности? сначала ньютоновскую, чтобы понять базовые вещи, епта
#404 #1007749
Есть около пары месяцев, диплом о вышке годичной давности (прикладная математика и информатика), остаточные знания алгоритмов (пузырек напишу, хотя последний раз в глаза его видел года 4 назад) и прочих структур в голове. Читаю книгу из гайда (которая с небом, аллахом, на 1.6к страниц), кажется мне местами излишней, знать то это все офк надо, но не в условиях ограниченного времени. Всеравно, 2й книгой буду Рихтера читать. Посоветуй, какую упороть первой. Дальше, планирую почитать что-то по базам данных (язык запросов в голове обновить). Что нужно изменить, или добавить к этому плану, чтоб меня взяли хоть на 20-25к (не ДС, но 1.5кк есть)? Желательно на русском, енглиш то читается, но 2/3 усилий уходит на перевод, выматывает так учить.
10078531008333
#405 #1007843
>>1007735
Спасибо!
#406 #1007853
>>1007749
Екб что ли? Напиши CRUD сервер с entity framework и клиента к нему - стопудово на джуна возьмут куда-нибудь.
1007859
#407 #1007859
>>1007853
Спасибо, дойду до работы с ado.net постараюсь придумать что-то.
#408 #1008333
>>1007749
Глянь вот эту хуйню >>1006133
Есть на русеке.
#409 #1008538
>>1006133
молю кинте сурс на архив с ней, если на рус и анг версию будет здорово
1008539
#410 #1008539
1008823
#411 #1008624
Ребзя, поясните за static у членов класса. Я так понимаю, что нужно ставить это слово, когда хочешь, чтобы метод работал независимо от полей этого класса? Объясните, пожалуйста
1008641
#412 #1008641
>>1008624
Статичный метод не требует экземпляр класса для работы. И не может обращаться к экземплярным методам/полям/свойствам.
1008642
#413 #1008642
>>1008641
ОООО, огромное спасибо. Ещё вопрос, когда класс статичный, а когда нет?
1008660
#414 #1008660
>>1008642
Когда он объявлен static
1008673
#415 #1008673
>>1008660
И для чего это нужно?
1008677
#416 #1008677
>>1008673
У static класса все поля/методы/свойства static по дефолту, можно не указывать.
Кстати, в Java static у классов имеет совсем другой смысл (хуета там какая-то).
1008727
31 Кб, 803x542
#417 #1008697
Привет. Проблема с виндовсформами.
Требуется поменять 1-ю и последнюю буквы в каждом слове строки из листбокс1. Полученную строку вывести в листбокс2. Не могу сообразить как это сделать.
Мой пикрил куска программы
10087541008803
#418 #1008727
>>1008677
Точнее будет сказать что у статик класса могут быть только статик члены
#419 #1008754
>>1008697
300 рублей.
1008797
#420 #1008797
>>1008754
Не демпингуй.
3000 руб
#421 #1008803
>>1008697
https://pastebin.com/qErNJeJJ
Лови, говнокод, конечно, но за бесплатно сойдет.
#422 #1008823
>>1008539
спасибо, анон, надеюсь и рус где-нибудь найдется
#423 #1008955
Привет Шарпаны. Анон сверху подсказал, как мне скомпилировать код в текстовом виде в exeшник.
Тут все ок, но дело в том что запускается консоль. А нет ли возможности вывода информации не в консоль, а в txt?
Ну или в строку, или вообще все что угодно. Мне нужно результат запихнуть в текстбокс.
#424 #1009041
Посоны, как лучше сделать такое.

Вот у меня есть текстовый файл в котором допустим 20 строк, каждая из которых такого вида "хуйпизда:нинужно=99".

Мне нужно пройтись по всем строкам и запихнуть в массив стрингов со всех строк "хуйпизда" т.е. все что до двоеточия, и в массив даблов забрать "99", т.е. все что после знака равно.

Как это лучше реализовать?
10090421009100
#425 #1009042
1009087
#426 #1009087
>>1009042
Регекс-то зачем?
#427 #1009100
>>1009041
Два сплита блять
#428 #1009250
Двач, нужна ваша помощь, как сделать, чтобы метод StartGame() вызывал(?) свойство Current, т.е. чтобы поле current = 1.
Или нужно как-то по-другому всё это реализовать?

private int current;
private int finish;

public int Current
{
get
{
return current;
}
private set
{
current = 1;
}
}

public int Finish
{
get
{
return finish;
}
private set
{
Random rndNumber = new Random();
finish = rndNumber.Next(75, 125);
}
}

public void IncreaseBy1()
{
current++;
}

public void MultiBy2()
{
current *= 2;
}

public void ComeToStartValue()
{
current = 1;
}

public void StartGame()
{

}
#428 #1009250
Двач, нужна ваша помощь, как сделать, чтобы метод StartGame() вызывал(?) свойство Current, т.е. чтобы поле current = 1.
Или нужно как-то по-другому всё это реализовать?

private int current;
private int finish;

public int Current
{
get
{
return current;
}
private set
{
current = 1;
}
}

public int Finish
{
get
{
return finish;
}
private set
{
Random rndNumber = new Random();
finish = rndNumber.Next(75, 125);
}
}

public void IncreaseBy1()
{
current++;
}

public void MultiBy2()
{
current *= 2;
}

public void ComeToStartValue()
{
current = 1;
}

public void StartGame()
{

}
#429 #1009251
Блять, двач, я докатил сам
#430 #1009685
Поясните нуфагу, как автоматические свойства выполняют инкапсуляцию? Формально то они ее выполняют - данные сокрыты внутри класса и обратиться можно только через свойство. Но это никак не предохраняет информацию, к свойству доступ получается так же непринужденно, как к открытому полю. Или я тупой и чего-то недогоняю? Про свойства только для чтения, или только для записи знаю, речь идет за обычные. Выглядит как удобный костыль, чтоб не писать сеты и геты.
10097831009800
33 Кб, 333x499
#431 #1009705
Сишарпусы, посоветуйте лучший ресурс/книгу с полнейшим, но с минимумом воды, мануалом по языку. Язык я знаю, но мне нужно всё внимательно и быстро повторить с самого устройства сборок до всего, что есть в языке.

Нормально ли вот это:
https://professorweb.ru/my/csharp/charp_theory/level1/infocsharp.php
Или c# in a nutshell всё же намного лучше? И напомните, чем бело-синяя версия отличается от бело-красной?
10097191009733
#432 #1009719
>>1009705

Рихтер же, ну.
1009728
#433 #1009728
>>1009719
Разве Рихтер это овервью языка для повторения? Это же наоборот куда более сильное колдунство?
#434 #1009733
>>1009705
Джон Скит, ван лав.
#435 #1009738
Здравствуйте, господа шарперы. Нравится мне ваш язык, буду его учить. Одна проблема - названия методов с большой буквы. Прям мерзко на душе становится.
Вы сами всегда следуете этому правилу? Ну, или хотя бы в основном? И если да, то поясните и замотивируйте мне, пожалуйста, почему так, а не "классы - с большой, а то, что им принадлежит - с маленькой"
1009739
#436 #1009739
>>1009738
Потому что гайдлайны.
1009741
#437 #1009741
>>1009739
Нет, это я прекрасно понял. Собственно, обчитался и потому спрашиваю.
Меня интересует почему нотации именно такая,а не, скажем, как в Java, которую я примитивненько описал выше. Мне бы хотелось понять почему так и поверить в то, что это действительно правильно.
#438 #1009743
Не бывает правильных нотаций. Правильно - когда соблюдается одна и та же.
1009744
#439 #1009744
>>1009743
Я, вероятно, слишком костноязычен чтоб объяснить все, эх.
Ну, вот, джаванотация, например. Там размер букв объясняется тем, что в языке все подчинено классам,там не может быть свободных переменных или методов. И потому все, что /подчиняется/ пишется с маленькой, в верблюдоблядском стиле, а то, чему подчиняется и что всегда будет стоять в самом начале - с большой.

А здесь /почему/ методы с большой?
#440 #1009765
>>1009744
Ну блядь принято тут так. Ты ещё поспорь, почему в джаве кэмэл кейс, а не снейк кейс.
#441 #1009781
>>1009744

>А здесь /почему/ методы с большой?


Это красиво и удобно. Простое правило: пиши все с большой и не забивай голову что чему подчиняется.
1010027
#442 #1009783
>>1009685

>Выглядит как удобный костыль, чтоб не писать сеты и геты.


Да это он и есть. Индусам слишком сложно явно написать тривиальный гет-сет и им упростили жизнь.

Еще есть такая херня: меньше кода => меньше вероятность ошибиться. Весь автогенерейт частично оправдиватся еще и этим, мол человек слабое звено даже в тиривиальном коде. Но это несостоятельная херня, так как весь автогенерет так или иначе перезжает в оперативку кодера, а она не резиновая, что ведет к дополнительным вдупления и ошибкам на ровном месте.
1009792
#443 #1009784
>>1009744
Возможно потому что тут есть делегаты, а значит переменным можно приравнивать методы, и это никак не отличается визуально от присваивания одной переменной другой, а так можно отличить что именно присваивается, просто поле или функция, алсо тут есть свойства, обращение к которым как к полям, но ведут они себя как методы.
1010026
#444 #1009792
>>1009783

>индусам сложно написать тривиальный goto-метка и циклы упростили им жизнь

#445 #1009800
>>1009685
Ты неправильно понял инкапсуляцию, стоит подучить. Суть не в приватах и общем доступе, суть в ограждении прямого логически доступа.

Вот смотри, если тебе внезапно понадобиться повесить евент на получение поля, например в игре, когда у тебя кто-то получает урон, раньше ты просто наносил его, но теперь хочешь чтобы он ещё говорил об этом игре, что ты делаешь со свойством? Ты переписываешь его, добавляешь отправку сообщений. Если бы у тебя было поле ты бы везде где к нему доступ вынужден был бы изменять всё. А автоматические проперти просто для сокращения необходимости писать пустые сеттеры и геттеры, которые просто передают поле, чтобы было на потом, и если что ты их допишешь. А ещё ты можешь объявить там уровни доступа гету и сету, чтобы ограничивать доступ.
1009806
#446 #1009806
>>1009800
Ну точнее, в сокрытии реализации тоже дело, но так и свойства не для приватных полей, а для внешнего интерфейса.
#447 #1009823
Доброго дня вам в уютном тредике.
Пишу игру, есть поле 10х10 клеток, на каждой клетке может находиться по нескольку разных объектов с разными свойствами (например, на одной клетке находится "Пол", "Стул", "Книга"). То есть мне нужен массив 10х10, где каждый элемент это List<Object>, правильно? И значит мне все эти объекты "Пол", "Стул", "Книга" наследовать от "Object"? Или я чего-то не понимаю?
1009860
#448 #1009860
>>1009823
В целом, да. Но лучше не object, а abstract GameObject, чтобы не положить случайно в клетку массив, число или другую клетку.

Либо можно пойти обратным путем - хранить список объектов с их координатами.

Кстати, реквестирую геймдизайнеров, чтобы сказали, какой из методов правильнее.
10 Кб, 686x42
#449 #1009862
>>1009860

>Но лучше не object, а abstract GameObject


Ну обджект я там написал условно, в реальности у меня есть класс MapObject. И я сейчас как раз пытаюсь отловить эксепшн, который мне бросает юнити на метод .Add для списка.
15 Кб, 668x99
#450 #1009867
>>1009860
По непонятной причине всё сыпется на 20й строке. MapObject правильный, массив с элементом [0,0] существует. Может это из-за версии дотнет фреймворка, у юнити 3.5.
1009883
#451 #1009875
Появилась необходимость удалить кучу файлов по маске. И вот я совершенно неожиданно для себя узнал, что все это делают в цикле. Это вообще нормально? Нет функции удалить все где условие такое то?
#452 #1009883
>>1009867
Ты сам список, куда объекты добавляешь, создал?
1009884
4 Кб, 367x35
#453 #1009884
>>1009883
АТО
1009886
#454 #1009886
>>1009884
Кекс.
1009888
#455 #1009887
Наследование или композиция? И почему.
#456 #1009888
>>1009886
Что не так?
10098891009892
#457 #1009889
>>1009888
Лист то не создал. А говоришь да.
1009891
4 Кб, 451x30
#458 #1009891
>>1009889
Так ты про инстанс? И его создал тоже, конечно же.
1009896
#459 #1009892
>>1009888
Ты создал массив листов, заполненный нуллами, пытаешься в нулл добавлять объекты.
1009896
#460 #1009893
Ну тогда стоит прочитать, что же за ошибка у тебя.
1009896
#462 #1009897
>>1009896
Я тебе специально написал что массив заполнен нуллами, ты создаёшь массив, да, чему равен каждый элемент в нём? правильно нихую
1009899
#463 #1009898
>>1009896
Короче, тебе надо создавать лист перед первым добавлением в ячейку, а лучше сразу в каждой при инициализации
1009899
#464 #1009899
>>1009897
>>1009898
Не понимаю, запутался. Можешь эту строчку кода переписать под "тебе надо создавать лист перед первым добавлением в ячейку, а лучше сразу в каждой при инициализации"?
1009901
#465 #1009901
>>1009899
mapStructure[0,0] = new List<MapObject>();
mapStructure[0,0].Add(tttt)
Это потому что у тебя массив листов объектов, ты создаёшь массив, но не листы, их нужно отдельно создавать, потому что лист это объект в шарпе и по умолчанию массивы создаются с дефолтным значением, для чисел 0, для объектов null
1009903
#466 #1009903
>>1009901
Но это же хуйня получается, выходит что я не могу иметь неизвестные листы! Это неприемлемо для моего случая.
1009904
#467 #1009904
>>1009903

>неизвестные


Пустые. Фикс.
#468 #1009906
А, всё, до меня дошло. То есть иметь пустые я как раз могу, но перед каждым заполнением я должен в ту пустоту передать инстанс листа.
mapStructure[0,0] = new List<MapObject>();
С вот этим заработало, спасибо.
1009910
#469 #1009910
>>1009906
Ну слава богу
#470 #1009920
>>1009860

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


Так это же не гейдизайнеров проблема. Они такими вещами вообще не занимаются.

Вообще иметь поле клеток с кучей пустых листов это очень расточительно по памяти и подходит только для маленьких карт. Но свой профит есть - напрмер можно почти мгновенно определить, что находится в соседней клетке и если в игре существуют многоклеточные обекты, то размещения их на карте будет менее сложным.
1009926
#471 #1009926
>>1009920

>и подходит только для маленьких карт


А если у меня планируется 255х255?...
1009941
#472 #1009941
>>1009926
смотри, 255х255х(размер ссылки 64 бита = 8 байт)/(размер килобайта 8) = 508 килобайт + копейки на внутренние приблуды массива, сам думай, будет поле в два раза больше, будет 2 мегабайта уже. И это только на пустое, ничем не заполненное(даже без листов) поле.
10099421009945
#473 #1009942
>>1009941

>размер килобайта 1024


конечно же
#474 #1009945
>>1009941
Ну тогда должно быть без проблем. У меня половина из всего пространства это пустой космос без объектов, а остальные клетки будут заполнены 1-5 разных объектов.
10099501009958
#475 #1009950
>>1009945

> У меня половина из всего пространства это пустой космос без объектов


Возможно стоит их оставить без нихуя в качестве оптимизации. Если клетка изначально предполагается как всегдапустая, то нет смысла выделять память на описание массива того, что в ней могло бы находится.
1010283
#476 #1009958
>>1009945
Ёмкость не забывай задавать при создании списка.
1010283
#477 #1010026
>>1009784
Воооот. Это больше похоже на логическое обоснование. Спасибо. Пойду хоть разберусь, что это
#478 #1010027
>>1009781
Всё? Переменные же с маленькой
#479 #1010060
А ну, чики брики, раскидайте за эти кнжиечки?
https://tproger.ru/books/free-csharp-books/
Стоит на что то обращать внимание?
И я не про вкатывание с нуля. А вот те книги где учат ООП на рабочих примерах.
2 Кб, 147x44
2 Кб, 142x47
#480 #1010283
>>1009950
>>1009958
Для интереса проверил, первый скрин с картой 10х10, а второй 255х255. Разница в памяти ~7мб. Полностью приемлимо, учитывая что остальные 60 отжирает сам движок юнити.
10102871010292
#481 #1010287
>>1010283
Бывший крестовик-затейник во мне седеет от кол-ва ненужных инвалидаций кеша.
1010288
#482 #1010288
А теперь у меня другая проблема. В одном скрипте я сгенерировал карту и создал инстанс массива, который содержит все данные о карте. Как мне этот массив читать и изменять из другого скрипта, но того же проекта?

>>1010287
Ну это же игровой движок с 60+ фпс на старом ноутбуке, имейте уважение!

Вот я помню игрался с движком MonoGame, он у меня за 120 фпс отжирал всё ядро, и при этом в нем не было даже графики никакой, лул.
1010291
#483 #1010291
>>1010288

>А теперь у меня другая проблема


Вопрос снимается, сам нагуглил.
#484 #1010292
>>1010283

> Разница в памяти ~7мб. Полностью приемлимо


И вот так забивая хуй на очереджные 7 мегабайт получилась андромеда.
1010299
#485 #1010299

>var obstacleItem = map.Struc[x,y].SingleOrDefault(ob => ob.IsObstacle == true);


Какой же линк охуенный, хоспаде!

>>1010292
7МБ за отсутствие костылей это очень хорошая сделка, как по мне.
10103041010541
#486 #1010304
>>1010299
Вот именно для таких случаев в вузиках рассказывают про Sparse matrix и способах её хранения. Например, в словаре.
1010305
#487 #1010305
>>1010304
Поясни как это все оформить в моем случае, плиз, мы же не в вузике.
1010306
#488 #1010306
>>1010305
Dictionary<IntVector2, List<GameObjects>> map;
1010308
#489 #1010308
>>1010306
А как здесь обратиться к списку объектов в координате (1;2)?
1010309
#490 #1010309
>>1010308
var list = map[new IntVector2(x, y)];
1010310
#491 #1010310
>>1010309
Намного лучше, чем мой двумерный массив?
1010336
250 Кб, 1280x1024
#492 #1010327
Ребят, у меня у одного после обновление VS пропало консольное приложение C# или я туплю?
1010328
#493 #1010328
>>1010327

>Visual C#

#494 #1010336
>>1010310
Если хочешь кодить, почитай хотя бы алгоритмы и структуры данных или курсы посмотри, намного легче и приятнее будет. (А там ещё и графы для пасфиндинга пойдут, поиски текста, очень полезно). Это совсем не долго, зато в кодинге лучше разбираться станешь на порядок.

По поводу твоего вопроса, смотри, словари имеют постоянную скорость доступа к элементам(как у массива) в общем случае, особенно если, как у тебя, карта в основном пустая, одна проблема, что ему надо расширяться, когда он заполняется на определённый процент, что он и делает, создавая новый массив и копируя все элементы в него по новой, что может быть медленно, если твоя карта 255х255 будет почти полной. Но да, плюс в том, что памяти он будет требовать по количеству полных клеток + ещё чуть. И надо не забывать удалять List из клетки, в которой ничего не осталось.
#495 #1010371
Как в коде отличить десктоп от лэптопа? По наличию батареи?
1010543
#496 #1010403
Что нужно знать по asp .net mvc чтобы взяли джуном? Как работает патерн я понимаю, энтети в основах знаю, веб апи в основах понимаю. Алсо - насколько нужен гитхабчик с одностраничником при составлении резюме и если крайне желателен то что там сделать чтобы показать свои скилы?
1010438
#497 #1010438
>>1010403
Гитхаб обычно не нужен.
Сам паттерн. Razor. Viewbag, viewdata, tempdata. Экшены, принимающие типизированные объекты. Секции view. Роуты. Стандартная аутентификация. DataAnnotation. Web api.
Язык сишарп на высоком уровне, конечно же.
Не будет лишним бутстрап и джиквери.
1010445
#498 #1010445
>>1010438

>Razor. Viewbag, viewdata, tempdata


Разве вьюбаги и пр. не зашквар? Я вроде учил что кошерно использовать вьюмоделы если больше чем модель нужна.

>Экшены, принимающие типизированные


Это для валидации форм?

>Секции view


Во вьюхах для паршалов?

>Роуты


Достаточно уметь прокинуть новый маршрут?

>Стандартная аутентификация


Ну тут бм понимаю.

>DataAnnotation


Опять таки для валидации?

>Язык сишарп на высоком уровне


Насколько высоком? Вроде при работе проблем по синтаксу не возникало.
10104621010463
#499 #1010462
>>1010445
На все вопросы да.
Язык - Рихтера понять всего.
#500 #1010463
>>1010445
Вьюбаги - зашквар, но иногда приходится.
#501 #1010541
>>1010299

> 7МБ за отсутствие костылей это очень хорошая сделка, как по мне.


> Какой же линк охуенный, хоспаде!


Ты уж определись, любишь ты костыли или нет.
#502 #1010543
>>1010371
Наличие батарери. Урезанные видеокарты. Лептопные процы. Разрешение экрана 1366 вместо 1920. Если винда заводская, то и по имени компа "Lenovo-PC".
Но главный вопрос конечно же "нахуя?".
Аноним #503 #1010561
>>999275 (OP)
Что пишут на c#
1010564
#504 #1010564
>>1010561
Программы)))0
На самом деле почти все- мобайл, веб, десктоп.
1010567
Аноним #505 #1010567
>>1010564
Ну прост непонятно, есть же куча инструментов для этого
1010569
#506 #1010569
>>1010567
Нет, ну ты спросил - я ответил. Да, для каждой задаче в шарпе есть свой стэк технологий. Если что-то конкретное интересует - спрашивай.
10105721010697
Аноним #507 #1010572
>>1010569
Нет, кроме шарпа куча инструментов есть, зачем он нужен?
1010573
#508 #1010573
>>1010572
Зачем другие инструменты?
1010574
Аноним #509 #1010574
>>1010573
Типа два стула, понятно
10106331010779
156 Кб, 1024x768
sage #510 #1010633
>>1010574
Вот ты охуеешь, когда узнаешь, что стульев там дофига, и каждый со своими особенностями.
1010671
Аноним #511 #1010671
>>1010633
Ну типа инструменты шарпа и все остальные
#512 #1010697
>>1010569
Писать под микроконтроллеры на .net как собрался?
YOBA-движки?
10107321010773
#513 #1010732
>>1010697

> Писать под микроконтроллеры на .net как собрался?


Ох уж эти ньюфаги...
https://ru.wikipedia.org/wiki/.NET_Micro_Framework
1010833
#514 #1010773
>>1010697

>YOBA-движки?


А под юнити ты на чем писать собрался?
Аноним #515 #1010775
>>1010773

>Движок поддерживает два сценарных языка: C#, JavaScript (модификация).

1010777
#516 #1010777
>>1010775

>C# тред


>Что пишут на c#


>советует JavaScript


Совсем заблудился? Нахуй ты вообще это написал?
1010779
#518 #1010791
>>1010773
У юнити под капотом не сишарп
1010808
#519 #1010808
>>1010791
Шок сенсация. У шарпа под капотом тоже не шарп.
1010836
#520 #1010815
Можно ли как-то убрать надпись: "Для продолжения нажмите любую клавишу..." в консоли?
10108231010825
#521 #1010823
>>1010815
Закоментить эту строку в коде.
#522 #1010825
>>1010815
Не используй system("pause")
Используй Console.ReadKey()
Или COnsole.ReadLine();
1010826
#523 #1010826
>>1010825
Окей, сделал, но можно ли как-то полностью убрать мерцающий значок, ожидающий ввода?
1010828
#524 #1010828
>>1010826
теоретически, это можно сделать либо статическими функциями класса Console, либо через WinAPI думаю можно, но это слишком заебно, чтобы объяснять. посмотри вот здесь: http://www.pinvoke.net/index.aspx как из C# через p/invoke вызывать вот эти функции: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682073(v=vs.85).aspx

но еще раз, второй вариант это для совсем отбитых, если тебе прямо очень хочется добиться нужного эффекта.
1010832
#525 #1010832
>>1010828
Я именно тот самый отбитый) Спасибо
#526 #1010833
>>1010773
На елдаках блядь.
Вопрос в другом, нормальный движок ты без байтослесарства не напишешь.
>>1010732
Ещё один блядь, ньюфаг мать его.
Эта поебень уровня Node.js под расбери пай и ардуины
#527 #1010834
Сап, диезач.
Пишу игру. В классе Level есть список пуль. Однако, обработка выстрела пули и её создание происходят в классе Player. Как сообщить классу Level о добавлении пули в список?

https://pastebin.com/nvzjnJSC
#528 #1010836
>>1010808
У тебя шиза? Анон спрашивал как писать йоба движки на шарпе, ты юнити привёл в качестве примера. А теперь у тебя шок и сенсация
1010839
#529 #1010839
>>1010836
Какой у него шиза дебил? Большая часть Unity на мерзких крестах написана, весь тяжелый рендер хуй ты на языке с GC напишешь, под GameBryo ты на Lua можешь писать, но это не значит что GameBryo на Lua написан, внятно тебе пояснил, болезный или ты кофе не выпил?

Или это такой тупорылый троллинг у вас с Сишарпом и юпнити?
10108421011050
#530 #1010842
>>1010839
Почитал хотя бы ветку обсуждения перед тем как отвечать
#531 #1010843
Даун выходит на связь.
Кароче думаю сделать что то с базами данных.
Для практики, и что бы на гит было шо кинуть.
Но не могу определиться с визуальной частью.
Делать на ASP.NET MVC или WPF MVVM? Или на том и на том? Все равно паттерным МВС/МВВМ помогают отделить логику от визуального интерфейса по максимуму.
Что сейчас более востребованно и хорошо выглядит в резюме?
1010845
#532 #1010845
>>1010843
ASP.NET
WPF очень редко где используется. А ASP.NET MVC аццки популярен.
1010898
#533 #1010898
>>1010845
Похоже я один такой даун, что вкатился джуном на винформы.
1010908
#534 #1010908
>>1010898
Ну если работа редкая, то значит не такой уж и даун, раз смог вкатиться. Чем занимаешься на работе? Веб? Десктоп с учётом?Просто интересно
1010916
#535 #1010916
>>1010908
Десктоп, который направлен на внутренний рынок. Поэтому формы, которые работают даже на 2000 винде/винсервере 2003.
#536 #1011050
>>1010839
Сорян, перепутал с одним дебилом.
#537 #1011087
>>1000571
Сам работаю C#(xamarin) погромиздом в компании. Зашел в тред почитать че по чем тут и прям охуел как ты доходчиво пояснил.
#538 #1011148
>>1000571
Неблохо. Сохраню в заметки.
1011155
#539 #1011155
>>1011148
Лучше алгоритмы и структуры данных почитай, меньше откровений в будущем будет
1011228
#540 #1011228
>>1011155

>Лучше алгоритмы и структуры данных почитай


Кто автор?
1011282
#541 #1011282
>>1011228
Это предмет такой, автор любой, кого удобно будет читать
1011311
#542 #1011311
>>1011282
Я понел.
Просто подумал может есть какой эминитый спец.
Взял на заметку, спасибо.
#543 #1011394
Ребят, я слишком тупой, объясните понятным языком зачем нужен и когда ставить модификатор доступа internal?
1011406
#545 #1011640
Пацаны, помогите, я nobasique.

Вот есть у меня 2 метода

public static int Method1()
{
int a = 2;
int b = 5;

return a * b;
}

public static void Method2()
{
var c = Method1();

Method1();
}
Как так может происходить?
Я вызываю в Method2 Method 1 в одном случае с возвратом значения, а в другом без. И все ок, компилятор не ругается
#546 #1011702
>>1011640
ты вызваешь войд - метод без return
#547 #1011744
>>1011640
А на что он должен ругаться?
#548 #1011749
>>1011640
Рекомендую как в классической архитектуре происходит вызов функции. Почитай про стек, адрес возврата, передачу параметров.
https://ru.wikipedia.org/wiki/Стек_вызовов#/media/File:CallStackFrame.png
1011786
#549 #1011786
>>1011749
Спосибо, брат.
#550 #1012356
Ребят, была ли у кого-нибудь такая ошибка при запуски проекта с отладкой(именно с отладкой):
Ошибка при попытки запуска проекта: Не удается запустить прграмму "Путь программы".

Отладчик установлен неправильно. Запустите программу Setup для установки или восстановления отладчика.

Как можно переустановить отладчик правильно и где взять Setup? Переустанавливать VS уже пробовал.
#551 #1012507
>>1011640
Больше статиком возвращающие методы помечай.
#552 #1012885
Перекат?
#553 #1013180
Есть примерно вот такая ебала:

public partial class Form1 : Form
{
IDoSmthg smthg;
public Form1()
{
InitializeComponent();
smthg = new Worker(this.button1);
}

private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = smthg.Do(4).ToString();
}
}

interface IDoSmthg
{
int Do(int z);
}

class Worker : IDoSmthg
{
AutoResetEvent are;

public int Do(int z)
{
are.WaitOne(-1);
return z * z;
}

public Worker(Button btn)
{
are = new AutoResetEvent(false);
btn.Click += new EventHandler(btn_Click);
}

void btn_Click(object sender, EventArgs e)
{
are.Set();
}
}

Суть думаю ясна, надо дождаться в методе некоторого события и только после продолжить работу. Как сделать так чтобы не блокировать форму, ведь мне же как раз и надо дождаться клика. И надо это без async/await ибо .Net4.
#553 #1013180
Есть примерно вот такая ебала:

public partial class Form1 : Form
{
IDoSmthg smthg;
public Form1()
{
InitializeComponent();
smthg = new Worker(this.button1);
}

private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = smthg.Do(4).ToString();
}
}

interface IDoSmthg
{
int Do(int z);
}

class Worker : IDoSmthg
{
AutoResetEvent are;

public int Do(int z)
{
are.WaitOne(-1);
return z * z;
}

public Worker(Button btn)
{
are = new AutoResetEvent(false);
btn.Click += new EventHandler(btn_Click);
}

void btn_Click(object sender, EventArgs e)
{
are.Set();
}
}

Суть думаю ясна, надо дождаться в методе некоторого события и только после продолжить работу. Как сделать так чтобы не блокировать форму, ведь мне же как раз и надо дождаться клика. И надо это без async/await ибо .Net4.
1013183
#554 #1013183
>>1013180

> Суть думаю ясна


Суть ясна только тебе. Если хочешь что бы тебе помогли, прояви немного уважения к тем, кто будет читать твой код. Используй сервисы с поддержкой форматирования, https://ideone.com/ вполне норм для этого.
1013212
#556 #1013229
>>1013212
Заебесь. Теперь все стало официально непонятно. Если нужно дождаться клика, то у кнопки есть событие, которое она ждет сама. Нахуя тебе костыли городить понадобилось?
1013462
#557 #1013354
Господа, где бесплатные сертефикаты для IIS берёте?
#558 #1013462
>>1013229
Наверно, из-за кривой архитектуры. Пишу игру, есть интерфейс IPlayer с методом Point MakeMove(Board board), и 2 класса реализующих этот интерфейс AIPlayer и HumanPlayer. Класс игры принимает в конструкторе 2 IPlayer и затем после старта крутит цикл, вызывая по очереди методы MakeMove игроков. С ИИ все понятно, используя преданное состояние игровой доски он вычисляет свой ход. А вот человек, после вызова HumanPlayer.MakeMove должен кликнуть по клетке на винформ контроле (у контрола есть событие CellClicked). Вот этого CellClicked я и хочу дождаться в MakeMove.
10136261013882
#559 #1013494
ПЕРЕКАТ >>1013491 (OP)
ПЕРЕКОТ >>1013491 (OP)
ПЕРЕКАТ >>1013491 (OP)
#560 #1013626
>>1013462
Игра на винформах в 2017 это охуенно.
Но даже тут у тебя масса возможностей.
1) Создать таймер и каждые n времени обрабатывать данные для всех объектов включая игрока. Клик игрока будет запоминаться в специальном буфере между циклами.
2) Игра полностью пощаговая, ждет действия игрока и все остальные объекты обрабатываются вслед за этим.
3) Создать тупо нормальный обработчик клика и в нем уже все оборабатывать.
10137231013882
#561 #1013723
>>1013626

>2) Игра полностью пощаговая, ждет действия игрока и все остальные объекты обрабатываются вслед за этим.


Вот я и хочу дождаться действий игрока. Кстати, это не обязательно человек vs комп, я же могу передать в игру 2 HumanPlayer.

>3) Создать тупо нормальный обработчик клика и в нем уже все оборабатывать.


Это как? Пихать всю логику в форму?
1013882
#562 #1013882
>>1013462
>>1013626
>>1013723
Короче, решил проблему. Надо было всего лишь запустить цикл с вызовом MakeMove'ов в отдельном потоке, а дальше как я и делал через AutoResetEvent ждать клика.
Тред утонул или удален.
Это копия, сохраненная 16 июля 2017 года.

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

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