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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #967208
Бля
обосрался с названием треда
967221
#3 #967221
>>967208
Шикарная работа, ты что упрт?
2020 Кб, 500x282
#4 #968403
private void button1_Click(object sender, EventArgs e)
{

foreach (string file in Directory.GetFiles(folderBrowserDialog1.SelectedPath))
{

}


И чо мне с этим делать? Задача-получение пути к папке, оттуда получение наименований файлов в них, с помощью уже написанного метода добавлять ватермарки и пересохранять ст уже добавленной ватермаркой
Я, наверно, тупой, так помогите неучу
969221
32 Кб, 480x640
#5 #969221
>>968403
Я могу попробовать помочь, но ты для начала объясни нормально что ты хочешь.
67 Кб, 778x696
#6 #971419
Почему при выводе A выводит всегда ноль? Даже если перед первым выводом изменить i? А почему меняются В и С?
новый кек
971423971425
#7 #971423
>>971419
А создает проперти, значение которой вычисляется только при создании класса.

B создает expression-bodied проперти, которая вычисляется каждый раз при вызове.
C - длинный вариант написания B.
971488
#8 #971425
>>971419
Потому что это авто пропертя в которую ты кладешь чиселку. Поскольку сеттера нет - то другую чиселку в нее положить уже нельзя.
#9 #971488
>>971423
Что есть expression bodied? вот все равно непонятно
971495
#10 #971495
>>971488
Блять то же самое как С но другими словами что непонятного то? Сахар. Синтаксический. Кстати нахуй не нужный никому. Но поскольку его наличие так же никому не мешает то почему бы и нет.
2265 Кб, Webm
#11 #971765
Поясните дауну зачем нужны абстрактный классы, что бы потом все равно потом переопределить полностью все методы в производном?
971781982380
#12 #971781
>>971765
Чтобы иерархию выстроить. Классический пример.

Класс фигура ( с полями колличество стороно и методом отрисовать себя) от нее наследуется триугольник, квадрат, где уже есть конкретные реализации. Это позволяет оперировать более обощенными понятиями, например создать метод, который может принимать фигуры и вызывать на них одинаковые методы, но при этом исполняться они будут в зависимости от конкретного объекта.
971787971821
#13 #971787
>>971781
А зачем тогда интерфейс? И метод, который бы работал с IFigure
971792982380
#14 #971792
>>971787
В абстрактном классе ты можешь создать методы которые могут быть универсальны для всех наследников.
К примеру с теми же фигурами у тебя хранится массив точек чтобы рисовалось на форме, но зачем тебе реализовывать функцию рисования этих точек в каждом наследнике, когда ты можешь сделать его в абстрактном и тупо вызывать у всех наследников.
Зачем тогда абстрактный класс, а не тупо обычный?
Смысл в том что твой объект фигура сам по себе существовать не способен, у него не может быть точек, он только знает что они способны существовать.
971793
#15 #971793
>>971792
Понял, спасибо. Тот же ToString() переопределить для всех потомков.
2252 Кб, Webm
#16 #971821
>>971781
Ну теперь понятно.
972015
#17 #972015
>>971821
а это не вредно так сиськами трясти?
972031
#18 #972031
>>972015
Болеть будут.
#19 #972154
Есть ли в шарпе аналог макросов в хаксе - т.е. код, который исполняется перед компиляцией? (например, забить енум значениями из бд)
972156
#20 #972156
>>972154
Нет, а нахуя? Там платформа позволяет тебе любой код генерить.
972161
#21 #972161
>>972156
нихуя не понял твоего ответа, так реализовать упомянутый пример можно или нет на шарпе?
972169972175
#22 #972169
>>972161
Entity Framework -> Database First
#23 #972175
>>972161
А нахуя это надо на этапе конпиляции? Ты код в базе хранишь? Есть стандартное средство кодогенерации для этой параши, гугли T4. Им вообще можно все что угодно сделать. Есть платформа которая может на этапе выполнения скомпилировать любую парашу на c# и использовать ее.
972290
#24 #972290
>>972175
Ну так это то что и надо.
#25 #972782
Есть проект в котором брекпоинт занимает от 5 до 20 секунд.
Так вот почему студия при таких проектах блочит на брекпоинте мне курсор мыши?
Я могу пользоваться, клавой, альтабаться, процессор на треть только загружен, но пока студия не соберет всю инфу на брекпоинте, то мышка не оплипнет. При том такая фигня не везде, на ноутбуке тот же проект, в той же студии, с тем же расширениям не вешает мышку, а просто создает подергивания.
Как починить это дерьмо?
972930
#26 #972930
>>972782
Вероятно переустановить ШИНДОWС!
#27 #973308
>>967207 (OP)
Дано:
1000 методов с различными сигнатурами.
Надо:
обмазать все методы декоратором так, чтоб декоратор не менял сигнатуру метода.

Как это сделать?
981336
736 Кб, 1909x2546
#28 #973913
https://pastebin.com/bYKcyn8n

Че-то я не допонимаю задание
Задача-копирование файла, наклепал с прямыми путями, прописанными в коде, а теперь надо дать возможность выбирать файл и куда копировать, как я понял, делается через цикл, а дальше я нихера не понял
974010974021
#29 #974010
>>973913
нормально повтори, что тебе надо
#30 #974021
>>973913
Files.walk(Paths.get("source/")).filter(path -> Files.isRegularFile(path)).forEach(path -> Files.copy(path, Paths.get("destination/" + path.getFileName()), StandardCopyOption.REPLACE_EXISTING));
974030974105
197 Кб, 433x273
#31 #974030
>>974021
Ха, как ты его!
#32 #974068
Вопрос к тем, кто пилил десктопные приложения под юникс.
Вот в винде принято использовать MVP для формочек и MVVM для WPF. Как дела с паттернами обстоят в моно? Формочки в моно - вырвиглазное говно, wpf не поддерживается. Для gtk# есть какие-нибудь методы биндинга данных к элементам gui?
Или надо как диды, через ивенты самому всё раскидывать и обновлять вручную типа?
974335
41 Кб, 604x341
#33 #974105
>>974021
Дядя, ты дурак?
#34 #974267
Как на формах нормально график нарисовать? Попробовал LiveCharts, круто, но при большом количестве точек зум и скролл лагать начинают. Бесплатного ничего что ли больше нет?
#35 #974335
>>974068
Пока только формочки. Алсо Xamarin формы лучше выглядят.
974454
#36 #974454
>>974335

>Алсо Xamarin формы лучше выглядят.


no linux support
974631
#37 #974459
Си решетка хороший язык, но я не перивариваю микрософт с его виндовсом, так что только линукс и. Питон
#38 #974460
Си решетка хороший язык, но я не перивариваю микрософт с его виндовсом, так что только линукс и. Питон
974467
#39 #974467
>>974460
Что не так с .Net core?
974623974632
#40 #974623
>>974467
С ним все так, просто линуксовая порватка про него не знает. Ну ничего, скоро микрософт вкатится на рынок и этим вашим явам и питонам придёт пизда.
974632974724975335
#41 #974631
>>974454
Ну тогда только Mono, хотя вроде ещё можно было Qt прикрутить.
4573 Кб, 346x253
#42 #974632
>>974467

>Что не так с .Net core?


>>974623

>С ним все так, просто линуксовая порватка про него не знает. Ну ничего, скоро микрософт вкатится на рынок и этим вашим явам и питонам придёт пизда.


Ну, есть много разных вещей.

1. Первая проблема, концептуальная, шарп и нет создавались с анальной привязкой к виндовс.
От чего, в нете много всякого жуткого говна, вроде айдишников каких-то сладких классов.
Ну и там работа с IO в виндовс отличается от никсов, там асинхронность сладкая на уровне Ос, а в линуксе все иначе.
Ну и там, файлик exe и dll, под никсами, лолд.

2. Дальше, проблема чисто техническая. Где этот нет коре скачать и установить? А хуй где.

3. Как под него разрабатывать, в никсах? А никак.

4. Кушайте сладкий mono.

И непохоже, что мс хочет куда-то вкатываться.
Очевидно, C# задумывался как замена Delphi в личном владении Балмера Нигросперма.
Было влито неимоверно много бабла, и судя по всему, получен отрицательный баланс.
Теперь МС озулупилась, куда бы ей деть это приносящее убытки говно стоимостью в миллиарды. Ага, сделаем опенсорс пусть линупсоиды за нас делают всю работу, будем второй джавой!11111
А хуй там.
В плане дружбы с разными платформами шарпу до джавы как php до няшной сиськи.
974644975279
#43 #974644
>>974632

>Было влито неимоверно много бабла, и судя по всему, получен отрицательный баланс.


Это и с любым языком программирования так.
IMHO, никто не собирался открывать .NET, но вместо Гейтса пришёл индуисский брахман, который компьютер видел пару раз в жизни на расстоянии 3-х метров, и по роду свой деятельности в M$ только «руководил».
Карго-культ, вот что это такое. Линуксоидам это нинужно, а вендузиане как сидели под своим вантузом, так и сидят.
974649974655
#44 #974649
>>974644

>Это и с любым языком программирования так.


Ну, необязательно, просто это в целом долгосрочная инвестиция.
Вот например апл для своей ос делает ЯП и IDE, и очень успешно.

>IMHO, никто не собирался открывать .NET,


Ну, МС изначально позиционировала его типо как открытый стандарт. Мол будет все, но не сразу. Видимо отдел маркетинга возымел катарсистическое недопонимание с техотделом.
Просто технологии майкрософт не работают ни с чем кроме виндовса.
Все эти активИКС - прости Аллах.

>Карго-культ, вот что это такое. Линуксоидам это нинужно, а вендузиане как сидели под своим вантузом, так и сидят.


Я бы хотел видеть шарп, или что-то шарпоподобное, как замену джаве, но этого видимо не произойдет в скором времени.
А к тому времени когда сие свершится, жава уже сама по себе будет ненужна, как и замена ей.
974651
#45 #974651
>>974649

> шарпоподобное, как замену джаве


Котлин же
#46 #974655
>>974644
D, Rust, Kotlin, Scala, Elixir — нет им числа.
974656
#47 #974656
>>974655

>D, Rust, Kotlin, Scala, Elixir — нет им числа.


Или джава вид сбоку.
Или байтоебство.
Или нулевая инфраструктура.

>D


Это как Delphi но без IDE и VCL. Вообще пушка.
974658974659
#48 #974658
>>974656
Ну так и шарп - джава вид сбоку, любой ооп язык - это джава + сахар, хочешь особенного иди в функциональщину
974660
#49 #974659
>>974656
И да хочешь инфраструктуру и не байтоебство и не джаву вид сбоку -> erlang
#50 #974660
>>974658

>Ну так и шарп - джава вид сбоку


Нет.
Ниразу.
974661974665
#51 #974661
>>974660
И в чем принципиальное отличие?
974674
#52 #974665
>>974660
То есть ты хочешь сказать, это вообще разные языки и у них мало общего и шарп делался без оглядки на джаву?
974674974680
#53 #974674
>>974661
Самое принципиальное: шарп изначально создавался, как язык для Компонентно-ориентированного программирования(привет Паскаль и Дельфи), в то время, как джава - изначально для ООП. Сегодня это самое главное отличие.Раньше ещё было то, что C# - язык для одной платформы.
>>974665
Много схожестей(в том числе и по синтаксису), т.к. шарп создавался частично по образу джавы.
Мимо другой анон.
974679
#54 #974679
>>974674

>Самое принципиальное: шарп изначально создавался, как язык для Компонентно-ориентированного программирования(привет Паскаль и Дельфи), в то время, как джава - изначально для ООП. Сегодня это самое главное отличие


Ок, отличия то назови.
#55 #974680
>>974665

>То есть ты хочешь сказать, это вообще разные языки и у них мало общего


Общего можно найти у любых языков.
И там и там ОООП -оооо это же одно итоже11111.
Нет.

>и шарп делался без оглядки на джаву?


Оглядка, необязательно подражание.
Можно посмотреть - фу блядь нахуй ну и мерзость.
#56 #974724
>>974623
Всё знает. Многие скажут , что нет.кор это сейчас просто кусок говна времен нет.фреймворк 2.0. Нормальной иде для линкс подобных систем нет и долго еще не будет. Микрософт решили подънаебать разработчиков, типо сделав вижул студио для айпловских MACак, в итоге тупо оказалось, что это на 90% монодевелоп бичевский, прогать на vs code тож гавно
#57 #975098
>>967207 (OP)
Поясните за плюсы и минусы ASP.NET, если сравнивать со скриптовыми языками (питон с джангой). Как насчет ASP.NET Core?
975249
#58 #975249
>>975098

> ASP.NET


Говно для ООО Шаурма и Родственники, у которых самый большой датасет это список работавших сотрудников и у которого единственный сервер на винде.

> Как насчет ASP.NET Core?


Говно без задач и коммьюнити.
#59 #975279
>>974632
Ты ебаный даун,пояснил тебе за щеку по поводу .net core
залазь обратно под шконку,сладкий
#60 #975335
>>974623
С добрым утром. Майкрософты пытаются вкатиться со своим дотнетом на отличные платформы уже лет пять как. На Андроиде ещё как-то взлетело, а вот net.core и mono мертвее мертвого.
975346975432
#61 #975346
>>975335
А как же Xamarin?
#62 #975432
>>975335
чот в голос, корка во втором квартале на армы выкатывается уже, какой нахуй мертвее мертвого?
975439
#63 #975439
>>975432
Прошу прощения, перепутал с net. micro framework. 10 лет назад с ней тоже восторженные долбоёбы бегали, но как-то не взлетело.
#64 #975550
я люблю математику и физику, какую книгу взять для изучения с#?
975551
#65 #975551
>>975550
Dive into one eyed friend.
975559
#66 #975559
>>975551
Chocolate eyed?
#67 #975569
Как называются поля/свойства, которые содержат ссылку на интерфейс? Вот объясняю я кому нибудь как я что то в программе реализовал, а как эту залупу одним словом называть не знаю.
class SomeClass
{
IInterface _someInterface; // <--- ????
public IInterface SomeInterface {get; set;} // <--- ????
}
981339
#68 #975628
Киньте примеры проектов, с которыми гоняете на собеседования, с меня как всегда
38 Кб, 792x441
#69 #975634
Даун снова на связи.
Поясните теперь за Интерфейсы.
Просто, зачем они.
Вот каноничный пример.
Работать методы будут и без того что я их объявлю в интерфейсе, а его потом наследую.
Это кажется просто чем то бессмысленным.
Это какой то ебанный заговор, что бы люди дольше стучали по клавиатуре.
#70 #975639
>>975634
Чтоб потом замокать в тестах.
975644977148
#71 #975640
>>975634
Разберись зачем нужно абстрагирование и тогда все встанет на свои места.
#72 #975642
>>975634
Ну ты сможешь сделать еще 10 классов, где реализуешь эти методы, но с какими-то особенностями, а интерфейс будет единый, значит не нужно думать о реализации, когда будешь пользоваться.
975644
#73 #975644
>>975639
>>975642
Чет хуевые из вас учителя, я бы на его месте нихуя не понял о чем вы.
975647
50 Кб, 600x373
#74 #975647
975672
92 Кб, 600x675
#75 #975669
>>975634
Допустим ты пишешь какую нибудь игру. И этой игре нужно реализовать сохранение. Как бы ты поступил, не зная интерфейсов? Просто бы написал какой нибудь метод Save, который бы сохранял прогресс в какой нибудь файл на компухтере. А теперь представь, что твою игру одобрил габен и тебе теперь надо сделать сохранение в каком нибудь облаке. Что ты будешь делать? Ты будешь менять метод сохранения, по сути ты будешь менять класс, в котором этот метод находится. Не очень то это кошерно, не так ведь? Тут то тебе на помощь и приходят интерфейсы. Дело в том, что все наследники интерфейса по сути являются этим интерфейсом, то есть ты можешь написать интерфейс ISaver с методом Save, и написать свой класс WindowsFileSaver, который наследует ISaver. В итоге ты напишешь реализацию метода Save в своем классе WindowsFileSaver, который потом скормишь своему классу, который будет содержать поле типа ISaver.
public class Game
{
private ISaver _saver;

public Game(ISaver saver)
{
_saver = saver;
}

public void Save()
{
_saver.Save();
}
}

public interface ISaver
{
void Save();
}

public class WindowsFileSaver : ISaver
{
public void Save()
{
//реализация сохранения в файл в шиндовсе
}
}

public class CloudSaver : ISaver
{
public void Save()
{
//реализация сохранения в облако
}
}

И теперь тебе остается только выбрать, какой способ сохранения давать игре.

static void Main()
{
var windowsGame = new Game(new WindowsFileSaver()); //тут будет использоваться реализация сохранения в файл.
var steamGame = new Game(new CloudSaver()); //тут будет использоваться реализация сохранения в облако
}

Теперь понятно?
92 Кб, 600x675
#75 #975669
>>975634
Допустим ты пишешь какую нибудь игру. И этой игре нужно реализовать сохранение. Как бы ты поступил, не зная интерфейсов? Просто бы написал какой нибудь метод Save, который бы сохранял прогресс в какой нибудь файл на компухтере. А теперь представь, что твою игру одобрил габен и тебе теперь надо сделать сохранение в каком нибудь облаке. Что ты будешь делать? Ты будешь менять метод сохранения, по сути ты будешь менять класс, в котором этот метод находится. Не очень то это кошерно, не так ведь? Тут то тебе на помощь и приходят интерфейсы. Дело в том, что все наследники интерфейса по сути являются этим интерфейсом, то есть ты можешь написать интерфейс ISaver с методом Save, и написать свой класс WindowsFileSaver, который наследует ISaver. В итоге ты напишешь реализацию метода Save в своем классе WindowsFileSaver, который потом скормишь своему классу, который будет содержать поле типа ISaver.
public class Game
{
private ISaver _saver;

public Game(ISaver saver)
{
_saver = saver;
}

public void Save()
{
_saver.Save();
}
}

public interface ISaver
{
void Save();
}

public class WindowsFileSaver : ISaver
{
public void Save()
{
//реализация сохранения в файл в шиндовсе
}
}

public class CloudSaver : ISaver
{
public void Save()
{
//реализация сохранения в облако
}
}

И теперь тебе остается только выбрать, какой способ сохранения давать игре.

static void Main()
{
var windowsGame = new Game(new WindowsFileSaver()); //тут будет использоваться реализация сохранения в файл.
var steamGame = new Game(new CloudSaver()); //тут будет использоваться реализация сохранения в облако
}

Теперь понятно?
975919
#76 #975672
>>975647
Прямо таки Вавилонская библиотека.
371 Кб, 832x868
#77 #975878
Не ну хоть бы спасибо сказал, уебка блять.
#78 #975892
>>975878
Нахуй иди.
Зарепортил анимедебила.
#79 #975897
>>975878
Пошел нахуй, пёс.
975901
#80 #975901
>>975897
Ты тоже нахуй иди, гнида.
Репорт.
975904
#81 #975903
>>975878
Спасибо

мимо джаваскриптобоярин
#82 #975904
>>975901
Я тебя о помощи не просил, так не выебывайся.
975906
#83 #975906
>>975904
Рот себе зашей, животное, и тихо будь.
975918
#84 #975918
>>975906
Не верещи, раскрыв рот и требуя благодарности за непрошеную работу, и тебе туда не нассут.
975925975978
8786 Кб, Webm
#85 #975919
>>975669

>Дело в том, что все наследники интерфейса по сути являются этим интерфейсом, то есть ты можешь написать интерфейс ISaver с методом Save, и написать свой класс WindowsFileSaver, который наследует ISaver. В итоге ты напишешь реализацию метода Save в своем классе WindowsFileSaver, который потом скормишь своему классу, который будет содержать поле типа ISaver.



Но я ведь и так и так будут писать реализацию в обоих случаях.
Без интерфейса один черт бьудет вот так:

>public class WindowsFileSaver


>{


>public void Save()


>{


>//реализация сохранения в файл в шиндовсе


>}


>}


>


>public class CloudSaver


>{


>public void Save()


>{


>//реализация сохранения в облако


>}


>}


>


>И теперь тебе остается только выбрать, какой способ сохранения давать игре.


>


>static void Main()


>{


>var windowsGame = new Game(new WindowsFileSaver()); //тут будет использоваться реализация сохранения в файл.


>var steamGame = new Game(new CloudSaver()); //тут будет использоваться реализация сохранения в облако


>}



>понятно


Понятно.
Думаю с практикой придет и прикладное понимание до конца.

>>975878
Спасибо. Ты умница.
Может благодаря тебе перестану быть дауном.
Так то после тренировки, цнс угнетена, трудно было вникать, поэтому так долго не отвечал.
Держи фудпрона.
8786 Кб, Webm
#85 #975919
>>975669

>Дело в том, что все наследники интерфейса по сути являются этим интерфейсом, то есть ты можешь написать интерфейс ISaver с методом Save, и написать свой класс WindowsFileSaver, который наследует ISaver. В итоге ты напишешь реализацию метода Save в своем классе WindowsFileSaver, который потом скормишь своему классу, который будет содержать поле типа ISaver.



Но я ведь и так и так будут писать реализацию в обоих случаях.
Без интерфейса один черт бьудет вот так:

>public class WindowsFileSaver


>{


>public void Save()


>{


>//реализация сохранения в файл в шиндовсе


>}


>}


>


>public class CloudSaver


>{


>public void Save()


>{


>//реализация сохранения в облако


>}


>}


>


>И теперь тебе остается только выбрать, какой способ сохранения давать игре.


>


>static void Main()


>{


>var windowsGame = new Game(new WindowsFileSaver()); //тут будет использоваться реализация сохранения в файл.


>var steamGame = new Game(new CloudSaver()); //тут будет использоваться реализация сохранения в облако


>}



>понятно


Понятно.
Думаю с практикой придет и прикладное понимание до конца.

>>975878
Спасибо. Ты умница.
Может благодаря тебе перестану быть дауном.
Так то после тренировки, цнс угнетена, трудно было вникать, поэтому так долго не отвечал.
Держи фудпрона.
975942976684
#86 #975925
>>975918

>эта шизофазия


Ох уж эта весна, ох уж эти обострившиеся шизики.
#87 #975933
На линуксе пишет кто? Стоит mono + monodevelop использовать?
Если всё плохо с этим перекачусь сразу на джаву, хотя C# больше нравится.
975936
#88 #975936
>>975933
Можешь попробовать VS Code.

>Если всё плохо с этим перекачусь сразу на джаву, хотя C# больше нравится.


Сорта Сиподобных параш.
В некоторых местах отличить невозможно.
Еще вроде в новую джабу завезли интерфейсы и лямбды.
975983
#89 #975942
>>975919
https://metanit.com/sharp/patterns/3.1.php
Паттерн стратегия - идеальный пример использования интерфейсов, имхо.
975946
2428 Кб, Webm
#90 #975946
>>975942
Спасибо.
#91 #975967
Вечер в хату, шарпаны.

Есть небольшой проект (менеджер конфигураций). Работа с конфигурациями проходит через бд (кучка статических методов, расширяющих SqlConnection) . Вынес все зависимости с бд из проекта в отдельный класс, задача - замочить бд и обнести юнит тестами. Вынес из запросов примерную структуру таблиц в классы, сами таблицы реализую как словарь (ключ - Id, значение - все остальные поля записи), сейчас переписываю запросы под работу со словарями-таблицами и буду под них тесты писать. Я все правильно делаю, или хуиту творю?

Фреймворками для моков желательно бы не пользоваться.
975971975981975987
#92 #975971
>>975967

>Фреймворками для моков желательно бы не пользоваться.


Зачем такие сложности?
#93 #975978
>>975918
Шо значит непрошеную? Анон попросил - я рассказал. И как видишь, ему это помогло. А ты просто токсичный уебок, из-за таких програмач и скатился в говно.
#94 #975981
>>975967
Юзеринтерфейс есть? Если да то на чем написан?
975987
#95 #975983
>>975936
Я ретроград, лет 6 назад прочитал пару книг про Java и C#, но как-то забил и продолжил писать на крестах, всё хочу эволюционировать наконец. Все пишут что у C# большие проблемы с кросплатформенностью, всё же современная джава будет лучшим выбором, наверное. Может есть что-то ещё более современное но не хипстерское и не компилящееся в джаву?
#96 #975986
>>975983
Питон и JS.
#97 #975987
>>975967
>>975981
Короче смотри, если пишешь на винформах, то юзай мвп, если на впф - мввм, если без UI вообще, то я хуй знает, можешь наверное продолжать то что сейчас делаешь. А я спать ушел.
976014
#98 #975988
>>975983

>и не компилящееся в джаву?



Для котлина недавно компилятор выпустили, но там все сыро, а чем тебя смущает компиляция для jvm?
976000
#99 #976000
>>975988
Не вижу смысла в мутных надстройках над языками для синтаксического сахара. В си-подобных как правило отсутствие ; в конце строк определяет зону зашквара для хипстеров.
976076
#100 #976014
>>975987
Без UI. Спасибо, мужик, продолжу
976018
#101 #976018
>>976014
А что значит "замочить"? Тебе по идее надо абстрагироваться от всего кода, который к базе обращается, и в юнит тестах передавать фейковые реализации вместо реального обращения.
#102 #976022
>>975983

>Может есть что-то ещё более современное но не хипстерское и не компилящееся в джаву?



Всем привет! Представляю вашему вниманию мой перевод статьи (включая графики) Кевала Патела Why should you learn Go? Статья содержит много интересных фактов, которые, по моему мнению, будет полезно узнать новичкам в Go.

P.S.: Статья, как и большинство статей, на мой взгляд, отражает опыт и мнение автора, которое может не совпадать с вашим, и это нормально — сколько людей, столько и мнений.
https://habrahabr.ru/post/326798/
976026976032976045
#103 #976026
>>976022
На самом деле статья не моя, просто скопипастил первую строчку.
63 Кб, 502x640
#104 #976032
>>976022
А он не хипстерский ли часом? Его продвижение я не мог не заметить уже длительное время, но не нравятся всякие func и var в синтаксисе.

Вот если бы D не помер...
976036
#105 #976036
>>976032
Да какая разница. Если гугол не забьет, то клещами заставит писать на нем каких нибудь андройд разработчиков.

>Go намеренно не содержит множество особенностей ООП языков.



>Нет классов. Каждая вещь делится только на пакеты. Вместо классов Go использует только структуры (structs. — прим.перев.).


>Не поддерживает наследование. Это упрощает модифицирование кода. В других языках, типа Java/Python, если класс ABC наследует класс XYZ, и вы при этом делаете какие-то изменения в классе XYZ, то это производит дополнительное изменения во всех наследованных от него классах. К тому же, без наследования, код Go становится более простым для понимания (так как нет super классов, на которые нужно обращать внимание при изучении участков кода).


>Нет конструкторов.


>Нет аннотаций.


>Нет дженериков (универсальных шаблонов. — прим.перев.).


>Нет исключений.



Звучит очень сомнительно, но скорее всего станет популярным. Даром на логотипе хомяк дебил.
#106 #976045
>>976022
Статья странная, они реально преподносят корутины как инновационную альтернативу тредам? Вообще-то это древняя технолокия которая есть для любого яп хотя бы в виде библиотеки.
Горутины, вообще охуеть
976047
#107 #976046
>>975983
Хуле тебе дотнет кор не нравится? Он уже работает и без брейкинг чейнджез в каждой новой версии
976051
#108 #976047
>>976045
Маркетинговая хуйня.
Продать можно любое говно, со словами Вы покупаете не говно, вы покупаете легенду.
Проблема в том что у Гугла походу нет своего Стива Жобса, или Илона Маска что бы впаривать хомякам очередное "откровение".
#109 #976051
>>976046
Первый раз слышу, mono уже не нужен?
976168
#110 #976076
>>976000

>хипстеров


Кек, чухан порвался.
#111 #976081
>>975983

>Может есть что-то ещё более современное но не хипстерское и не компилящееся в джаву?


Rust.
D.
976090
#112 #976090
>>976081
Похоже на трупы под С++17 и Go
976100
#113 #976100
>>976090
Ну, D скорее мертв, чем жив.
А вот rustом я бы поинтересовался.
976107
#114 #976107
>>976100
fn, mut, impl, pub в расте это просто пиздец, что за беснующийся хипстер писал первоначальные спецификации языка? Зажать пару букв чтобы выглядело круче, писали бы λ, θ и остальной греческий алфавит вместо ключевых слов, а не эти уродливые сокращения.
976110
#115 #976110
>>976107
ты радуйся, что не ntohl фхтагн
64 Кб, 1149x174
#116 #976133
Есть одна задача пикрелейтед. Нашел решение к ней, вот оно:
http://ideone.com/zC6i5V

Вроде понятно, но не понимаю, как мы пришли к выводу, что число действий = p+q+r? Что за действия тут вообще считаются?
976137
sage #117 #976137
>>976133
Как насчёт того, чтобы спросить это у препода?
#118 #976168
>>976051
Не, net. Core это самостоятельная платформа для любой ОС. Для этого моно не нужно. Но хоть микрософтовские с пеной у рта продвигают эту платформу , она пока шибко не взлетает. Все как делали под виндувс сервер, так и делают. А на линуксе всего 2 землекопа тусуются. Может быть через несколько лет этот нет кор и взлетит. Хотя поздновато они с линуксом связались. Тут уже давным давно всякие JVM и питоны квоздями прибиты + уже 100500 готовых решений
#119 #976266
Сап, аноны. Есть тупой вопрос: нужно запилить двусвязный список. Почитал кое-что, узнал про класс LinkedList и LinkedListNode. Как я понял, второй неразрывно связан с первым, но их взаимодействие я никак понять не могу.
На плюсах со списками проблем не было.
Что посоветуете? Может, самому шаблон написать? Если бы кто-нибудь отсюда помог, было бы очень круто.
976312
#120 #976305
Нет ни у кого книги Дейтелов C# how to program, 6 издание?

Вроде уже должна быть сканированная, но хуй там.
#121 #976312
>>976266
LinkedList это сам двусвязный список, элементами которого являются LinkedListNode. В LinkedListNode хранится значение и ссылки на предыдующий и последующий элемент.
976322976845
#122 #976322
>>976312
ты обосрался описал DoublyLinkedList
976326
#123 #976326
>>976322
обосрался тебе на лицо
LinkedList в С# это и есть двусвязный список.
#124 #976330
>>967207 (OP)
Всем привет! Есть ли здесь разрабы С#, желающие работать в небольшой компании в ДС? Работа связана с разработкой программного продукта, который контора успешно продает. Обязанности: допиливать систему, интерфейс, сидеть в офисе и пить чай с печеньками. Территориально офис расположен в 10 минутах ходьбы от м. Нагатинская. Если есть заинтересованные, пишите мне на почту heretlzbicfungusANUSproto{tknmailPUNCTUMcogl|m
Всем удачи в поисках и отсутствия варианта развития событий, где вы остаетесь с голым хуем в руке! и без масла!
976332
#125 #976332
>>976330
Ну охуеть вообще. Ты бы еще сказал "нужен программист, который пишет программы за зарплату".
#126 #976340
Анон, я фулстак-скриптомакак, но всегда нравился Шарп.
Думаю искать вакансии фронтов (ангуляр/тайпскрипт), где на бэке используют Шарп и постепенно к вам перекатиться. Как идея?
976341
#127 #976341
>>976340
Хуевая.
976342
#128 #976342
>>976341
Что не так? Что посоветуешь?
976344
#129 #976344
>>976342
Имхо, тебя к бэку никто не подпустит, так и будешь фронтовой макакой.
976346
#130 #976346
>>976344
Что жи делать?
Повторюсь, что так-то я фулстак, фронт пишу постольку-поскольку, в бэке больше нравится копаться, но вот конкретно в Шарпе рабочий опыт нулевой.
976360
#131 #976360
>>976346
Что мешает самому выучить шарпан и устраиваться сразу на бэк?
976364
#132 #976364
>>976360
Не хочу просто джуном идти и терять в зарплате.
#133 #976420
Решил обмазаться решарпером. Пока побмазывание проходит нормально, но вот не могу понять один момент. Он все мои переменные хочет переназвать в var
Это как то влияет на оптимизацию или еще на что? Или он просто делает это потому что может?
#134 #976422
#135 #976424
>>976420
var дает возможность компилятору выводить тип самостоятельно.на этом список преимуществ заканчивается
#136 #976485
А в этой вашей визуал студии можно вебразработкой заниматься?
Есть какие нибудь книжки про это?
976486976487
#137 #976486
>>976485
asp.net
#138 #976487
>>976485
Или ты про то, что бы использовать VS в качестве IDE для какого нибудь джаваскрипта?
976520
#139 #976520
>>976487
Ну например плагины для браузера писать.
Но что бы можно было взаимодествовать с разметкой и кодом страницы.
#140 #976684
>>975919
ебать ну хуевый у тебя какноничный пример просто вась, допустим у тебя есть класс геометрическая фигура, его наследуют классы круг, квадрат и треугольник. Квадрат и треугольник наследуют интерфейс IPoints, в котором есть метод PrintInfo. Ты наследуешь IPoints для квадрата и треугольника, для квадрата определяешь метод как ну допустим C.WL("У нас тут 4 точки"); а для треугольника соответственно C.WL("У нас тут 3 точки"); . Потом допустим у тебя есть коллекция из кругов, квадратов и треугольников, и тебе для каждой из фигур нужно напечатать количество точек в них. Так как ты знаешь, что точки есть у тех фигур которые наследуют интерфейс IPoints, то ты можешь фигуры из коллекции рассматривать как объекты интерфейса:

foreach (var sh in Shapes)
if (sh is IPoints)
sh.PrintInfo();
976757976766
#141 #976757
>>976684
Вроде понял.
Кстати реализация Паттерна MVP хорошо помогает разобраться в интерфейсах.
Когда в презентере начинаешь собирать все.
#142 #976762
Решил обмазаться корой под линухом. Вопрос: где найти свежее чтиво по asp.net core? В последних версиях я так понял они отказались от project.json и перешли на .csproj, а там чёрт ногу сломит. Да и вообще хотелось почитать о новых киллер фичах.
976767
#143 #976766
>>976684
Пример хуже и запутаннее, плюс неправильный
По твоему описанию класс shape не имеет метода printinfo, а ты вызываешь. Правильнее так

foreach (var sh in Shapes)
if (sh is IPoints temp)
temp.PrintInfo();
#144 #976767
>>976762
Blog.msdn.com
Docs.ms.com

Перешли обратно на cprog,чтоб унифицировать с остальными проектами и юзать msbuild,все просто. Внутри тот же proj,только на xml
#145 #976797
Сидел в уютненькой 2010 студии ненсколько лет. Есть ли смысл перекатываться на более новые, если все ровно пишу под некро говно где стоит 3.5 и даже 2.0 дотнет?
#146 #976798
Пачаны, говорят что сейчас смысла нет делать десктопный софт, дескать все уже в интернетах да телефонах сидят. Что думаете по этому поводу???
976799976811
#147 #976799
>>976798
Играю в ведьмак 3 на теленфоне. Комп выкинул, фильмы смотрю в интернете через 3g.
#148 #976811
>>976798
Иди в тырпрайз.
#149 #976825
Код перехода по директориям (и переход вверх на уровень, если это не частный случай) подскажет кто? Нашел на метаните работу с каталогами, но не могу понять как сделать сам переход.
977146977151
#150 #976845
>>976312
То есть, правильно ли я делаю, присваивая, скажем, первый элемент LinkedList узлу LLNode, а потом присваивая через Next ему последующие узлы? (Это для заполнения / пробега по списку)
6 Кб, 366x178
#151 #976981
Сап, нид хелп. Нуб, учу asp .net core vs2017, рандомно возникает релейтед и не стартует iis.
977013
#152 #976996
>>976766
чего бля? Класс шейп не имеет метода принтинфо, в массиве шейпов есть два класса которые этот метод имеют так как реализуют интерфейс, мы проверяем, реализует ли каждый объект из массива этот интерфейс. И вообще ты где такой синтаксис видел?

>if (sh is IPoints temp)

977019977023
12 Кб, 591x265
6 Кб, 530x190
#153 #977000
>>976766
Браток ты бы разобрался в том что такое интерфейс, прежде чем говорить что-то уровня "класс shape не имеет метода printinfo, а ты вызываешь".
#154 #977013
>>976981
Запусти студию под админом.
977020
#155 #977019
>>976996
село подьехало
как вам, интернет по 20 мб на хату подключили?
#156 #977020
>>977013
Ну, со мной не все так плохо.
#157 #977023
>>976766

>foreach (var sh in Shapes)


>if (sh is IPoints temp)


>temp.PrintInfo();



Что тут такре у тебя shapes и какой конкретно тип имеет переменная sh?
>>976996

>И вообще ты где такой синтаксис видел?


C# 7, старичок
977025977037977038
#158 #977025
>>977023
Перепутал код, должен быть этот

foreach (var sh in Shapes)
if (sh is IPoints)
sh.PrintInfo();

быстрофикс
#159 #977037
>>977023

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

977040
#160 #977038
>>977023
кинь мне пример какой-нибудь
if (sh is IPoints temp)
977040
#161 #977040
>>977037

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


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

>кинь мне пример какой-нибудь


https://dotnetfiddle.net/bpN07q
#162 #977042
Есть одно консольное приложение и нужно как то передавать код завершения в вызывающый батник. Есть разница между методом Environment.Exit(X) и обычным return X?
483 Кб, 700x700
ООП для довенов #163 #977052
Есть годные книжки? Хочу эффективно юзать ооп, зазубрил терминологию, теорию в общем, практиковался. Но только дело доходит до нестандартных задач - руки опускаются, слишком сложна. Посоветуйте годноты на русике, чтоб про логику ооп и его эффективное использование.
#164 #977079
>>977052

>Но только дело доходит до нестандартных задач


Каких например?
Мимопробегал.
#165 #977097
Хочу попрактиваться в работе с базами данных.
Какие субд вообще востребованны в конторах которые работают на дотнете?
977120
#166 #977120
>>977097

> Какие субд вообще востребованны в конторах которые работают на дотнете?


Много.

ms sql 2000, ms sql 2005, ms sql 2008, ms sql 2010, ms sql 2012, ms sql 2014, ms sql 2016.
977169977192
#167 #977146
>>976825
bump
или дайте линк что почитать.
#168 #977148
>>975639

>Чтоб потом замокать в тестах.


Сука, кто вообще придумал моки? Я понимаю, что иногда нужна какая-то изолированность, но из-за этой хуйни тестирование превращается в какой-то дрочь.

Моки. Нахуй. Не нужны.
977150
#169 #977150
>>977148
Очень хочется посмотреть на твои юнит тесты без моков.
977153978701
#170 #977151
>>976825
Блядь, ты не можешь у пути отрезать слова до предпоследнего слеша?
977156
#171 #977152
>>977052
ПИШИ КОД, ДОВЕН!
Все будет, но не сразу.
#172 #977153
>>977150
Юнит-тесты нужны только в динамикодрисне. В статике они даром не нужны.
977154
#173 #977154
>>977153
А потом в команду приходиь какой-нить Вася, нечаянно ломает код для корнер кейса своими изменениями. Эта всё идет в продакшн, продукт ломается нахуй.

На разборе полётов я вставляю вам с Васей пизды и заставляю писать юнит тесты. Проходили уже.
977160
#174 #977156
>>977151

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


Окей, вопрос перехода выше на уровень решен.
А сам переход как реализуется? Получаю я имена и пути с помощью Directory.GetDirectories, а что дальше с ними делать-то? Я так понимаю надо запилить нечто вида goto(строка путь_к_файлу) (офк не через готу), что именно надо написать?
977159
#175 #977159
>>977156

>что именно надо написать?


Просто прочитай в толчке книжку по шарпу и все такие вопросы отпадут.

>А сам переход как реализуется?


Конструруй новый путь к найденым директориям или файлам.

Псевдокод:

БазовыйПуть = "ПУТЬ\\В\\НИКУДА"; // начальная директория
для каждого КАТАЛОГ в Directory.GetDirectories(БазовыйПуть) делоть
{
НовыйПуть = Path.Combine(БазовыйПуть, КАТАЛОГ);
ВсеФайлыВДочернемКаталоге = Directory.GetFiles(НовыйПуть);

// тут делай что хочешь с файлами, но лучше випилсь из треда
}
#176 #977160
>>977154
Такая херня ловится именно интеграциоными тестами.

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

Тестирование на уровне классов нинужно. У них может тупо зависимостей не хватать для нормальной работы и надо будет все адово мокать и фейкать. Юнит-тесты чистая дрочка без особого смысла.
977163977181977185
#177 #977163
>>977160
Пиздишь и не краснеешь. Сетап всех корнер кейсов всех возможных инпутов в интеграционных тестах - хуйня из разряда фантастики.
#178 #977169
>>977120
Два чаю. Если уж решил стать адептом мелкософта, то по полной.
97 Кб, 447x447
#179 #977181
>>977160

> Юнит-тесты чистая дрочка без особого смысла.


> C#



А, ну да.
#180 #977183
Делаю десктопный софт на продажу. Подскажите самый лучший способ защиты софта от взлома кул хачкеров??? Может часть программы держать у себя на сервере??
977195
#181 #977185
>>977160
Макака детектед. Скажи где работаешь, чтобы я туда не случайно не устроился.
#182 #977192
>>977120
А в чем разница?
#183 #977195
>>977183
Денуво.
#184 #977258
Ребят накидайте платины, которую нужно точно знать, что бы на джуна устроиться. Хочу летом для опыта пороботать
977294
#185 #977263
Почему блять нельзя просто приравнять один список к другому? Кто вообще нахуй придумывал, что там блять референсы копируются вместо обычных значений? Кому это вообще на этой ёбаной планете может понадобиться? Это же блять может таких ебаных проблем в коде насоздавать, которые ты даже сначала не заметишь, а потом обосрешься и охуеешь, когда всё по пизде пойдет.
И главное даже нет никаких нормальных способов копирования "по-нормальному", кроме форича. Облазил стаковерфлоу, там вообще какие-то охуительные решения предлагают, от которых глаза на лоб лезут. Пиздос.
#186 #977270
>>977263
Боль студента.
977274
#187 #977274
>>977270
Не совсем. Но почему так?
#188 #977291
>>977263
Представь себе, что у тебя, к примеру, есть
некоторый объект button1 типа Button, который является кнопкой на интерфейсе.

Что должно происходить с интерфейсом, когда ты в коде пишешь Button button2 = button, если объекты передаются не по ссылке? А если это не кнопка, а вообще поток чтения файла или записи в базу?
977304
#189 #977294
>>977258
T-SQL, LINQ, Entity Framework, MVVM (для десктопа) MVC (для веба).
#190 #977304
>>977291

>Button button2 = button1


Ну это ж говно какое-то, не? Зачем так делать?
977308
#191 #977308
>>977304
Да, говно. Но ты же зачем-то хочешь копировать списки таким же образом.
#192 #977309
>>977263

>Кому это вообще на этой ёбаной планете может понадобиться?


ебать ты гомункул
>>977263

>Облазил стаковерфлоу


либо плохо лазил, либо никто раньше такого простого вопроса не задавал
https://dotnetfiddle.net/d1RjMr
977313
#193 #977313
>>977309
Ты так траллишь, да? Неплохая попытка, но попробуйте еще.
977321
#194 #977321
>>977313
В каком месте он траллит?
977324
#195 #977324
977331977334
#196 #977331
>>977324
что мешает тебе поставить туда то, что тебе нужно? я же не Ванга, чтоб твое тз угадывать
977334
#197 #977334
>>977324
>>977331
или ты намекаешь на то, что у тебя там ссылочный тип?
ну тогда ссорян, пиши функцию клонирования. Если тебя это отталкивает, то тем ли ты занимаешься?
#198 #977386
>>977052

>Хочу эффективно юзать ооп


А мог бы просто писать код который решает конкретные задачи

> Но только дело доходит до нестандартных задач


Это каких например?
#199 #977422
Подскажите пакет для обучения и последующего выполнения дерева решений (random tree forest). На Хабре ничего путного нет.
977442
56 Кб, 886x481
Сириус энтерпрайз тестинг #200 #977427
Сап анон, я к тебе с вопросом, суть такова:
Пишу я значит пет-проджект, реализацию одной структуры данных на шарпе, оформлено в виде библиотеки. Тут встал вопрос тестирования. Так как на работе я пишу на функциональной дрисне и тестов у нас не предусмотрено, то опыта в тестировании соответственно и нет. Ранее, при написании библиотеки я просто заводил дополнительный проект с консольным приложением под названием "Test", делал из него ссылку на либу и высирал в консоль несколько аутпутов в типовых сценариях использования. В приличных местах за такое, очевидно, бьют ебальник и поэтому захотелось организовать тестирование "по правильному".
Ок, сама студия имеет свой фреймворк для тестов, можно использовать его.
Вопрос - как открывать кишки класса для дестового проекта, при этом не обмазываясь интерфейсами уровня "IRandom вместо Random" (я претендую на некоторую производительность в рантайме, потому нахуй не надо).
У меня, пока что, две идеи:
1) Маркировать то что я хочу заэкспоузить как internal и использовать атрибут InternalsVisibleTo. Попробовал, вроде работает.
2) Использовать условную компиляцию. При задефайненом "TESTING" нужные классы/поля помечаются как паблик, без него - как приват. Но тут надо уметь заставлять студию собирать тестируемый проект с флагом компиляции при запуске тестов. Также есть небольшой плюс в качестве того что можно в тестовом режиме даже определять отдельные методы, которых не будет в "продакшн" коде.

Вопрос 2:
Как тестировать код, зависящий от рандома?
Есть у меня например код вида

class MyClass
{
private static Random random {get} = new Random();
...
Ну и как обеспечить повторяемость рандома при тесте? Пока что придумал разве что маркировать как интернал и в тестовом проекте подменять заранее заготовленным генератором с известным сидом. А как делают белые люди? Пожалуйста, только без IRandom, умоляю

Вопрос 3:
Как правильно тестировать производительность кода? Замеры времени, статистику кэш-миссов, всё это. Слышал про Benchmark.NET, есть ли годные мануалы по другим техникам?
56 Кб, 886x481
Сириус энтерпрайз тестинг #200 #977427
Сап анон, я к тебе с вопросом, суть такова:
Пишу я значит пет-проджект, реализацию одной структуры данных на шарпе, оформлено в виде библиотеки. Тут встал вопрос тестирования. Так как на работе я пишу на функциональной дрисне и тестов у нас не предусмотрено, то опыта в тестировании соответственно и нет. Ранее, при написании библиотеки я просто заводил дополнительный проект с консольным приложением под названием "Test", делал из него ссылку на либу и высирал в консоль несколько аутпутов в типовых сценариях использования. В приличных местах за такое, очевидно, бьют ебальник и поэтому захотелось организовать тестирование "по правильному".
Ок, сама студия имеет свой фреймворк для тестов, можно использовать его.
Вопрос - как открывать кишки класса для дестового проекта, при этом не обмазываясь интерфейсами уровня "IRandom вместо Random" (я претендую на некоторую производительность в рантайме, потому нахуй не надо).
У меня, пока что, две идеи:
1) Маркировать то что я хочу заэкспоузить как internal и использовать атрибут InternalsVisibleTo. Попробовал, вроде работает.
2) Использовать условную компиляцию. При задефайненом "TESTING" нужные классы/поля помечаются как паблик, без него - как приват. Но тут надо уметь заставлять студию собирать тестируемый проект с флагом компиляции при запуске тестов. Также есть небольшой плюс в качестве того что можно в тестовом режиме даже определять отдельные методы, которых не будет в "продакшн" коде.

Вопрос 2:
Как тестировать код, зависящий от рандома?
Есть у меня например код вида

class MyClass
{
private static Random random {get} = new Random();
...
Ну и как обеспечить повторяемость рандома при тесте? Пока что придумал разве что маркировать как интернал и в тестовом проекте подменять заранее заготовленным генератором с известным сидом. А как делают белые люди? Пожалуйста, только без IRandom, умоляю

Вопрос 3:
Как правильно тестировать производительность кода? Замеры времени, статистику кэш-миссов, всё это. Слышал про Benchmark.NET, есть ли годные мануалы по другим техникам?
977477977533
#201 #977442
>>977422
Мой диплом, лол. Но я с нуля сам писал.
978629
#202 #977464
Сап шарпач. Собираюсь скоро подаваться джуном куда-то, но пока знаю только голый C#. До этого байтоебил на Си и никогда в жизни не занимался веб-макакингом.

Большинство вакансий в моей говностране требует знаний ASP.NET, хотя бы базовых. Да и самому стало интересно как оно в веб. Суть вопроса вот в чем. Как изучить этот самый ASP.NET? Начать с HTML/CSS и парралельно читать по ASP?

HTML надо учить версии 5?
977619978697978703
#203 #977465
>>977263

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


М Н О Г О П О Т О Ч Н О С Т Ь как объяснение для тебя сойдет. Подумой! А там уже и до многих других причин, может быть, дойдешь.

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


Это азы. Все равно что сесть в самолет / вертолет, взлететь и направить штурвал от себя и не отпускать, а потом орать защоо.

> И главное даже нет никаких нормальных способов копирования "по-нормальному", кроме форича.


Ты просто нихуя не разбирался.
#204 #977477
>>977427

> Вопрос - как открывать кишки класса для дестового проекта


Для сложной логики хуячь юнит-тесты, работающие без контекста или с поднятием ограниченного контекста. Лишние зависимости мокай. Можешь отдельно упороться 100% покрытием, чтобы крутую плашку на гитхабе поставить.
Для всего приложения хуячь интеграционные тесты, тестирующие само поведение твоей программы.

> при этом не обмазываясь интерфейсами уровня "IRandom вместо Random"


Принципы SOLID прошли мимо тебя.

> (я претендую на некоторую производительность в рантайме, потому нахуй не надо)


Кекнул.

> Как тестировать код, зависящий от рандома?


Просто и без задней мысли - как с тян.

> как обеспечить повторяемость рандома


Проиграл с повторяемости рандома. Но если так охота - мокай и возвращай вместо рандома хоть анус Сатаны.
981345
#205 #977503
Порекомендуйте пожалуйста книгу по сишарпу, в которой по каждой пройденной теме есть страница с задачками. Если не порекомендуете, то придется скачать каждую книгу из шапки и самому смотреть.

Заранее спасибо.
977619978042978203
#206 #977533
>>977427
Выше тебе уже ответили, но хочу добавить по поводу рандома:
Если у вас есть достаточно мощные сервера для прогона тестов, то можно тестировать по области определения - заменить рандом функцией, которая поочерёдно пробегает все значения из области определения, правда такое возможно не всегда. Если область определения не ограничена, то использую подходы вероятностного тестирования - берёшь нормальное/гауссово/ ещё какое-нибудь распределение, потом соответствующую выборку и прогоняешь уже по ней.
#207 #977619
>>977503
>>977464
мамку ебал
114 Кб, 224x309
#208 #977859
>>976766

>if (sh is IPoints temp)


Пиздос.
978218978315
#209 #977871
>>977052 ФП изучай, довн. Это проще, лаконичней, эффективней.
978046
#210 #978042
>>977503
Если найдешь скинь в название в тред. Есть книга называется Visual C#, но там задачки и вопросы в конце главы носят чисто условный характер
#211 #978046
>>977871
Но ведь кода будет как говна.
#212 #978199
>>975983

>есть что-то ещё более


Ты же кресты шаришь, нахуй тебе еще что-то? Еби Qt и мир у твоих ног.
Хотя хз что ты там пилить собрался..
#213 #978202
>>976420
не всех, а только тех которые ты тут же инициализируешь каким-то типом. Так вот чтобы не плодить масло маслянное типа "в гараж для машины поставь машину" оно предлагает просто писать "поставь в гараж машину". Собственно просто разгрузить код для читабельности, не более.
#214 #978203
>>977503
Code First писал по шарпам. По ней начинал учиться в свое время. Но она для старту только.
#215 #978218
>>977859
Таки да, сам хуею в какую индускую жопу катится шарп.
Ни одной хорошей фичи в 6 и 7 не завезли, только раковый сахар для говнокода.
978244978320978329
#216 #978220
>>976420
Выкинь каку. Это тормозная хуитка посоветует тебе обмазаться таким модным и свежим дерьмом, что ни на одном древнем конпеляторе не соберется, без последнего фреймворка работать не будет, а код будет похож на упоротую динамикодрисню.

Сука, уж лучше самому вдуплять где вар нужен, а где нет, чем каждый раз посылать нахуй эту назойливое нечто. И для нормального рефакторинда решарпер тоже не нужен. Стандартных функций студии хватает, а нетривиальных случаев не так уж и много, чтобы терпеть постоянные тормоза и особо ценные советы по обмазыванию сахаром.
#217 #978244
>>978218
А чего ты ждешь в С#?
978696
#218 #978297
ASP.NET Core MVC уже нормальный?
#219 #978315
>>977859
>>977859
Что-то не нравится?
51 Кб, 569x540
#220 #978318
События в .NET являются синтаксическим сахаром для паттерна Observer. Причём сахаром довольно никчемным, потому что упрощения от них чуть, а ограничения весьма существенные.

Как правило среди наблюдателей (observers) и наблюдаемого (observable) большим сроком жизни (областью видимости) обладает последний. Это значит, что в их взаимодействии критически важной становится отписка от событий. В противном случае мы сталкиваемся с утечками памяти — подвисанием короткоживущих объектов, которые после своего использования недоступны сборщику мусора, даже если отсутствуют прямые ссылки на них в пользовательском коде (поскольку продолжают оставаться неявные ссылки из источника событий).

В нормальных реализациях паттерна Observer для отписки используются токены подписки (subscriptions), желательно совместимые с идиомой RAII (отписка через деструкторы в C++ или через IDisposable в C#). Именно так это сделано в Boost.Signals2 в C++ или в Rx в C#. Правильный синтаксический сахар в C# должен был выглядеть так (псевдокод):

private IDisposable _subscription;
...
_subscription = publisher.SomeEvents += subscriber.HandleSomeEvent;
...
_subscription.Dispose();

Токен подписки не требует тащить всю дорогу явную ссылку на обработчик, чтобы отписаться. Но в C# последнее сделано иначе:

publisher.SomeEvents -= subscriber.HandleSomeEvent;

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

publisher.SomeEvents += (sender, e) => { Debug.Log(“Some message.”); subscriber.HandleSomeEvent(sender, e); }

потому что:

publisher.SomeEvents -= ???

Обычно observers и observable друг о друге ничего не знают, а подписку инициирует какая-то третья сторона (назовём её «менеджер»).

Так вот, в случае правильной реализации паттерна Наблюдатель, менеджеру не надо тащить за собой ссылки на подписчиков или источник событий. Скажем, менеджер получил в конструкторе один раз ссылки на подписчиков и издателя, связал их друг с другом и полностью забыл про них:

_subscription = observable.SomeEvents.Subscribe(observer.HandleSomeEvent);

Для того, чтобы отписаться, ему не нужны ни подписчик, ни источник, достаточно безликого поля IDisposable:

_subscription.Dispose();

В случае отписки от событий C# всё сильно хуже, зачем-то нужны и подписчик, и издатель:

observable.SomeEvent -= observer.HandleSomeEvent;

То есть безосновательно увеличена связность.

Выше уже писали про кривой синтаксис возбуждения событий (raise events). В отсутствие подписчиков (зауряднейшая ситуация) вместо простого «ничего» получаем на ровном месте `NullReferenceException`. Причём нельзя просто так взять, и проверить на `null`, как в статье, потому что между проверкой и возбуждением события может отписаться последний подписчик, и вместо ожидаемого пустого invokation list получаем `null`; выше уже указывали на это.

Далее, события в C# не могут сигнализировать об окончании потока `OnComplete()` или об ошибке `OnError(exception)`. Не могут на лету комбинироваться и преобразовываться Linq-методами. Не предусмотрено библиотечного механизма для разделения «холодных» и «горячих» потоков событий, буферизующих, и т.д.
51 Кб, 569x540
#220 #978318
События в .NET являются синтаксическим сахаром для паттерна Observer. Причём сахаром довольно никчемным, потому что упрощения от них чуть, а ограничения весьма существенные.

Как правило среди наблюдателей (observers) и наблюдаемого (observable) большим сроком жизни (областью видимости) обладает последний. Это значит, что в их взаимодействии критически важной становится отписка от событий. В противном случае мы сталкиваемся с утечками памяти — подвисанием короткоживущих объектов, которые после своего использования недоступны сборщику мусора, даже если отсутствуют прямые ссылки на них в пользовательском коде (поскольку продолжают оставаться неявные ссылки из источника событий).

В нормальных реализациях паттерна Observer для отписки используются токены подписки (subscriptions), желательно совместимые с идиомой RAII (отписка через деструкторы в C++ или через IDisposable в C#). Именно так это сделано в Boost.Signals2 в C++ или в Rx в C#. Правильный синтаксический сахар в C# должен был выглядеть так (псевдокод):

private IDisposable _subscription;
...
_subscription = publisher.SomeEvents += subscriber.HandleSomeEvent;
...
_subscription.Dispose();

Токен подписки не требует тащить всю дорогу явную ссылку на обработчик, чтобы отписаться. Но в C# последнее сделано иначе:

publisher.SomeEvents -= subscriber.HandleSomeEvent;

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

publisher.SomeEvents += (sender, e) => { Debug.Log(“Some message.”); subscriber.HandleSomeEvent(sender, e); }

потому что:

publisher.SomeEvents -= ???

Обычно observers и observable друг о друге ничего не знают, а подписку инициирует какая-то третья сторона (назовём её «менеджер»).

Так вот, в случае правильной реализации паттерна Наблюдатель, менеджеру не надо тащить за собой ссылки на подписчиков или источник событий. Скажем, менеджер получил в конструкторе один раз ссылки на подписчиков и издателя, связал их друг с другом и полностью забыл про них:

_subscription = observable.SomeEvents.Subscribe(observer.HandleSomeEvent);

Для того, чтобы отписаться, ему не нужны ни подписчик, ни источник, достаточно безликого поля IDisposable:

_subscription.Dispose();

В случае отписки от событий C# всё сильно хуже, зачем-то нужны и подписчик, и издатель:

observable.SomeEvent -= observer.HandleSomeEvent;

То есть безосновательно увеличена связность.

Выше уже писали про кривой синтаксис возбуждения событий (raise events). В отсутствие подписчиков (зауряднейшая ситуация) вместо простого «ничего» получаем на ровном месте `NullReferenceException`. Причём нельзя просто так взять, и проверить на `null`, как в статье, потому что между проверкой и возбуждением события может отписаться последний подписчик, и вместо ожидаемого пустого invokation list получаем `null`; выше уже указывали на это.

Далее, события в C# не могут сигнализировать об окончании потока `OnComplete()` или об ошибке `OnError(exception)`. Не могут на лету комбинироваться и преобразовываться Linq-методами. Не предусмотрено библиотечного механизма для разделения «холодных» и «горячих» потоков событий, буферизующих, и т.д.
978333978368978705
#221 #978320
>>978218
Движется в сторону фп, что не понятно?
Если фп для тебя индусская жопа, то советую pascal/c
978696
#222 #978329
>>978218
А что ты вообще хочешь не из сахара? Твои предложения?
Собственно, и async/await - сахар, linq - сахар. Но он же делает код лаконичнее и приятнее (если достаточно ума перестроиться быстро, конечно)
978696
#223 #978333
>>978318

>События в .NET являются синтаксическим сахаром для паттерна Observer


Пиздос поехавший, дальше не читал
978334
#224 #978334
>>978333
Пруф ми вронг, быдло.
978339
#225 #978339
>>978334
Синтаксический сахар (англ. syntactic sugar) в языке программирования — это синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека.

А в твоем случае, видимо, поведение меняется

Более простыми словами (уровнями ниже), сахар - это конструкция, которая компилятором преобразовывается в эквивалентную хуйню, но с болле лаконичным синтаксисом, в случае ивентов - они построены на делегатах, а не разворачиваются конпелятором в observer. Для слушателей в .net есть свои интерфейсы, так что где-то удобнее ивентами, где-то слушателями, они не ВЗАИМОЗАМЕНЯЕМЫ
978342978348
#226 #978342
>>978339
Блядь делегаты это, очень грубо говоря, ссылки на методы по сигнатуре.
Событтия, еще грублее говоря, набор этих самых делегатов.
Кароче абстрактная хуйня для патерноебства.
Что это если не синтаксический сахар?
978347978349
#227 #978347
>>978342

>Событтия, еще грублее говоря, набор этих самых делегатов


Нет, все делегаты в дотнет - это мултиделегаты (набор делегатов). Ивент- это оопшный делегат
>>978342

>Что это если не синтаксический сахар?


Делегат - это безопасная ссылка на метод, ивент - оопшный делегат
#228 #978348
>>978339

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


Это значит, что всё, что придумали, после написания программы прямо на машинных кодах, является синтаксическим сахаром?
978355978360978362
62 Кб, 610x434
#229 #978349
978361
#230 #978355
>>978348
Нет синтаксический сахар, это когда еще до компиляции, некоторые конструкции разрешаются в другие конструкции этого же языка, но менее удобные и приятные глазу.
978359978366
#231 #978359
>>978355

То есть унылое патерное бество и писанина десяти строчек вместо трех.
978364
#232 #978360
>>978348

>Это значит, что всё, что придумали, после написания программы прямо на машинных кодах, является синтаксическим сахаром?



Да.

Отнесение некоторых конструкций к синтаксическому сахару неоднозначно в силу исторических причин. Например, в языке C и его потомках имеются операторы увеличения и уменьшения (++, --, +=, -= и т. п.). Ведение этих операторов в язык было вызвано необходимостью поддержки ручной оптимизации программ, так как код с их использованием мог транслироваться в более эффективные машинные команды («++a» транслировалось в одну команду INC, а аналогичное выражение «a=a+1» — в целую группу команд). Развитие технологии оптимизации кода сделало подобную ручную оптимизацию бессмысленной; сейчас компиляторы порождают одинаковый код для «длинного» и «короткого» варианта операции. В результате сокращённые операторы превратились в синтаксический сахар, хотя изначально им не были.

В некоторых случаях понятие «синтаксический сахар» трактуют более широко, нежели «другой способ записи для уже имеющихся синтаксических конструкций». Джек Креншоу в книге «Давайте создадим компилятор!»[1] применяет этот термин к синтаксическим элементам, которые не нужны для правильной компиляции программы, а включаются в язык исключительно для обеспечения удобства программиста и для удобочитаемости программы:

В конце концов, люди тоже должны читать программы… Сахарные токены служат в качестве полезных ориентиров, помогающих вам не сбиться с пути…
В качестве примера такого синтаксического сахара приводится «then» в операторе «if» или «do» в операторе «while», а также точка с запятой: компилятор и без них однозначно определяет конец условия и место завершения оператора, но наличие этих конструкций делает программу более удобочитаемой. Очевидно, узкая трактовка понятия «синтаксический сахар» несовместима с широкой: в Си или Паскале невозможно записать операторы иным способом, без «then», «do» и точки с запятой.
#233 #978361
>>978349
Дай потралить.
ща напишет обосрался - притворись тралем.
#234 #978362
#235 #978364
>>978359
Наоборот 3 вместо 10.

Я из джавы, вот синтаксический сахар

было void someFunc(int[2] array) и нужно было при передаче писать someFunc(new int[] {1,2})

стало void anotherFunc(int... array)

anotherFunc(1,2)
978365
#236 #978365
>>978364
Ну хорошо тогда.
#237 #978366
>>978355
Хуйня какая-то. В ванильном C конструкция a является синтаксическим сахаром к (a + i), а в том же C# второй конструкции нет (по крайней мере, в безопасном коде). Это что блять значит - если из C убрать возможность делать запись (a + i), то запись a сразу перестанет быть синтаксическим сахаром?
978367978369978393
#238 #978367
>>978366
Сука, ебаный парсер двача звёздочки в разметку преобразовал.
#239 #978368
>>978318

>Токен подписки не требует тащить всю дорогу явную ссылку на обработчик, чтобы отписаться. Но в C# последнее сделано иначе:


>


>publisher.SomeEvents -= subscriber.HandleSomeEvent;


это кстати особенность ивента, а не делегата. то есть в делегате можно его просто "обнулить", но как я уже два раза говорил "ивент - оопшный делегат", то его сделали таким, чтоб никто его не мог обнулять, а отписка происходит именно так. Сделано для того, чтоб Вася в своей части кода не обнулил весь делегат, а потом всем коллективом искали ошибку
9 Кб, 1158x87
#240 #978369
978376978393
#241 #978376
>>978369
Если урать из С возможность делать второй вариант, то С станет нахуй не нужным.
#242 #978393
>>978366
>>978369
с точки зрения языка - да, перестанет. Станет просто обычным (единственно-доступным) синтаксисом, а что такого?
с точки зрения самой конструкции - сама конструкция - синтаксический сахар над оп-кодами
#243 #978494
Всем привет, по учебе нужно сделать WCF приложение и клиент который будет его использовать.

В прошлом семестре я делал WEB Service Application и клиент. И для этого было достаточно одной ide visual studio. То есть я мог написать тот сервис, запустить его в браузере, подключать к клиенту и пользоваться его методами.

В WCF же при запуске, чтобы хотя бы глянуть, что это такое нужно добавлять в какой-то IIS manager и устанавливать windows server и это все настраивать между собой.

Я правильно понимаю? Препод сказал, что можно просто переделать прошлый проект на этот который сейчас, поэтому хочется с минимальной мозгоеблей без всяких доп установок это сделать, с одного viusal studio. Получится ли?
978690
#244 #978560
Поправил с помощью dnSpy пару строк в программе, при запуске пишет "Strong name validation failed". Как исправить? В гугле пишут про sn.exe, но это не помогает.
978581
#245 #978581
>>978560
Никак. Программа подписана подписью, ты модифицировал контент программы - подпись стала невалидной.

Либо собери заново и подпиши, либо декомпилируй, правь строку и подписывай.
978599
#246 #978585

>Писать не на CIL


Ебать вы сахарки.
978592
#247 #978592
>>978585

>писать на CIL, а не на машинных кодах


Лошара.
978594
#248 #978594
>>978592

>на машинных кодах


Он же не кроссплатформенный.
978595
#249 #978595
>>978594
CLR тоже. Иди попробуй запустить CLR 4.0 код на CLR 2.0 платформе.
#250 #978599
>>978581
А удалить никак нельзя эту подпись? Или запретить проверять? AssemblyKeyFile есть, но его удаление не помогает.
978607
#251 #978607
978626
#252 #978626
>>978607
Не работает решение. Та утилита возвращает ошибку 0x57 - параметр задан неверно. Сейчас попробую декомпилировать и попытаюсь собрать. Проблема в том, что изначальная программа написана на версии 1.1. Кто нативно поддерживает такую версию? У меня есть VS2005, так там уже 2.0. VS2003?
243 Кб, 850x1233
XOR #253 #978628
Аноны, объясните простыми словами в чём суть алгоритма шифрования Xor? И как его можно записать на c#?
978635
#254 #978629
>>977442
конечно, ни текста диплома ли приложения к нему тут не будет?
#255 #978635
>>978628
Берешь ключ, берешь данные. Повторяешь ключ столько раз, чтоб он покрывал все данные. Потом делаешь:
var encoded = input.Zip(stretchedKey, (i, k) => i ^ k);

И записываешь output как шифрованное говно. Для расшифровки просто еще раз ксоришь с ключем.
#256 #978690
>>978494
Да подыми ты его на IIS, в работе чаще всего так и придется делать. Под VS ты его все равно под IIS подымаешь, только встроенную в VS, Express версию. По факту тебе чуть ли не файликов пару скопировать нужно, а на деле экспы получишь.

Вообще тема гуглиться на раз-два должна...
978878
#257 #978696
>>978244
>>978329
Я думаю шарп идеальный законченый язык на уроне 4 стандарта. Все остальное "развититие" уровня "тут мы добавили еще один способ сделать тоже самое действие, но в одну строку". Это что-то плохое т.к размывает понятную строгость языка до индусткого уровня "пишу как хочу, конпелятор все разрулит".

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

Мое предложение: отъебаться от шарпа и если чешутся руки начать делать новый язык программирования на платформе нет. Двойной профит: новый язык покажет насколько беззадачное говно все высраные маркентинговые фишечки для шарпа и одновремено даст более штрокое поле для эксперементов. Сейчас же пидорасы чинят то, что не сломалось.

>>978320
У фп-петухов есть F# но он нахуй никому не нужен, поэтому они лезут без мыла в ооп-мейнстрим, громко кукарекая, что за их уродливой парашей будущее.

Нет за ней никакого будущего -- это щаг назад.
ФП - это просто мозговой дроч с повышением нагрузки на программиста с околонулевым профитом. Идеалогия фп-петушатника не пзволяет заметить такой очевидный факт, что продуктивности-то нет, а все фирменые(тм) приемы фп легко реализуются и чистым ооп-подходом. Для этого не нужно ломать мозг об стрелочки и петушиную терминологию.
ФП-петухи -- конченые пидорасы, срущие другим в кашу.
978699979065
#258 #978697
>>977464

>Суть вопроса вот в чем. Как изучить этот самый ASP.NET? Начать с HTML/CSS и парралельно читать по ASP?


https://docs.microsoft.com/en-us/aspnet/core/
Лучше конечно всё сразу, оно не пересекается.

>HTML надо учить версии 5?


Ну, на самом деле да.
#259 #978699
>>978696

>высраные маркентинговые фишечки для шарпа


Сдается мне что ты слабо понимаешь преимущество шарпов. Он был сделан для удобной и быстрой разработки под венду, все блядь. И пока будет возможность ее ускорить или сделать более удобной, пока будет возможность упростить его привлечь индуса на 3м курсе вместо 4го, тем самым удешевив разработку - это будут делать. Остальное не ебет. Прокачанные чуваки всегда остануться с выбором что из сахара юзать, а что нет, и даже если будут использовать, то будут использовать с умом, а о том чтобы остальные не выстрелили себе в ногу позаботится компилятор, решарпер
и прочие костыли.

В общем, кажется мне что ты не от того языка требуешь строгости. А в плане читабельности и лаконичности Шарпы и так оставляют 95% языков за спиной.
978714
#260 #978701
>>977150

>Очень хочется посмотреть на твои юнит тесты без моков.


In-memory database и обычный IoC контейнер, всё как и в приложении.
978704978713
#261 #978703
>>977464
заходи на ITVDN, проплачивай курс на месяц-два, и ебашь все уровни шарпа от корки до корки, потом ASP, ASP MVC и HTML + CSS. Если по часов 6 в день тратить - времени хватит, а нет - продлишь, оно того стоит, поверь. Собстенно только на этих курсах замидлился давеча.
979506979608979614
#262 #978704
>>978701
[TestInitialize] метод в студию.
978709
#263 #978705
>>978318

>События в .NET являются синтаксическим сахаром для паттерна Observer.


И сразу обсёр. События в нете предлагают функцинальность аналогичную патерну Observer, но реализация у них другая.

Observer - это интерфейс события и куча классов наследников от него, которые из-за знания интерфейса события могуют подписаться на него и реализовать кастомную обработку.

События в нете - делаются без наследования, на рефлексии. Каждый делегат сорт оф указатель на функцию с полным знанием о своих праметрах. Делегат может жить сам по себе, т.к сам является объектом и он будет держать ссылку на объект-таргет события для правильного его вызова. Все это гарантирут рантайм нета.
#264 #978709
>>978704
Ну вот ещё. CreateMapper, new DbContextOptionsBuilder?
#265 #978713
>>978701
Этак, ты поднимаешь отдельную in-memory DB, в которую также пихаешь корнер-кейс данные. После этого начинаешь забивать в неё все возможные инпуты для всех тестируемых систем. Потом строишь декартово произведение всех возможных инпутов для всех возможных систем и начинаешь это тестировать.

Ты что, ебанулся там?
978781
#266 #978714
>>978699
Все так, но вот есть предел после которого сахар != ускорение. Получается все строго наоборот -- открываешь чужой код, а там вроде и шарп, но просто космос из-за широгого использования какой-нибудь модной поебени. И ладно бы без этого нельзя было обойтись, НЕТ БЛЯДЬ просто РЕШАРПЕР ПОСОВЕТОВАЛ, А Я ТАКОЙ ДА.
Или ПИСАТЬ НУЖНО НЕ 4 СТРОКИ А 1 -- тут я люблю спрашивать в какое измерение перенеслись исчезнувшие три строки и у петухов случается деление на ноль с защитным кукареканьем, что об этом думать нинужно, т.к. компелятор порешает. И напоминаешь как этот пидорский конпелятор порешал автогенерацию свойств.
Очень пичет от хипстерской тупости.
978717
#267 #978717
>>978714

>Я отчасти понимаю твой буггурт, но проблема тут не в сахаре, а в рукожопах.



За что благодарен опыту в тырпрайзе, дак это за то что по кодстайлу и конвенциям ебали будь здоров. Теперь даже пет проект не могу писать без JDоc, а большинство плюшек которые "можно" остаются в разряде "но не нужно".

С другой стороны - будь проект моложе на лет 5, глядишь и конвенции были бы другие, и весь сахар был бы в норме. Так что все таки главное одноображно, и в стиле команды.
#268 #978781
>>978713

>также пихаешь корнер-кейс данные.


Ну да, то ли дело мокать методы, чтобы они возвращали эти самые кейс данные, лол.

>После этого начинаешь забивать в неё все возможные инпуты для всех тестируемых систем.


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

>Ты что, ебанулся там?


Нет, ты.
978792978828
#269 #978792
>>978781
Вопрос уровня начальной школы: что быстрее растет: z=x+y или z=x*y при условии что x и y - натуральные числа?.
978800
#270 #978800
>>978792

>Вопрос уровня начальной школы


Нет, не начальной.
978971
#271 #978828
>>978781
Дебилоид не знает разницы между юнит-тестами и интеграционными / функциональными тестами.
978853
#272 #978853
>>978828
И ещё как знаю. Следующий. Ещё раз - моки не нужны.
978862
#273 #978862
>>978853
Зачем вообще тесты нужны? Без них лучше.
978869
#274 #978869
>>978862
Ебать ты даун.

Мне просто надоело видеть огромную кучу мусора, который возвращает листы вместо реальной базы данных, которая возвратит абсолютно тоже самое. Не говоря уже о всяких проблемах, которые возникают в процессе. И это надоело любому адекватному человеку, которого не интересует бесполезная дрочка на покрытие ради покрытия и моки ради моков.
978877
#275 #978877
>>978869
нет, ну правда. Нахуй тебе тесты?
979075
#276 #978878
>>978690
Искал просто IIS под десятку и как-то быстро взглянул и походу она на десятку с бубнами ставится, поэтому решил тут спросить
979583
#277 #978914
Подскажите где можно порешать задачи? Желательно постепенный переход от простого к сложному.
979011
#278 #978971
>>978800
Почему нет?
#279 #979011
>>978914
Какого рода задачки? Алгоритмы можешь на leetcode подрочить.
979021
#280 #979021
>>979011
Ну я только вкатываюсь в С#, и в программирование в целом. Поэтому не знаю какие задачи лучше, но чувствую что тупо чтения Шилдта мне не хватает.
979036
#281 #979036
>>979021
Гугли лабы по информатике для программистов, а не водарты раскрашиватт за первый курс на любом языке и делай на своем.
#282 #979065
>>978696
Надеюсь, ты просто траллишь. Иначе я потеряю веру в людей и больше никогда не зайду на двач
#283 #979075
>>978877
От тестов есть польза. От моков я пользы ещё не видел.
979337
#284 #979159
Суп, двощ. Есть один TCP-сервер, который слушает указанный порт, на который могут поступать текстовые запросы и файлы. Как организовать обработку поступающей информации с текстом делаем а(), с .jpg делаем b(), а с .dat с() так, чтобы потом не было мучительно стыдно за свой говнокод?
979174
#285 #979174
>>979159
Свитч-кейс, хуле там ещё придумаешь?
979178
#286 #979178
>>979174
Это понятно. Но можно как-то из одного потока по массиву полученных байт определять, строка там или файл? Или лучше использовать разные потоки, или вообще слушать файлы и запросы на разных портах?
979189979192
#287 #979189
>>979178
можешь что-нить навелосипедить как в http протоколе content-type header
#288 #979192
>>979178
Асинхронная обработка должна быть: https://msdn.microsoft.com/ru-ru/magazine/dn605876.aspx не знаю насколько годная статья, но ты понел, гугли.

Это тоже за тебя погуглил: http://stackoverflow.com/questions/910873/how-can-i-determine-if-a-file-is-binary-or-text-in-c ищи последовательности для файлов, форматы которые тебя интересуют
979218
#289 #979218
>>979192
Спасибо анончик, уже запилил на сериализации. Хотя может вообще выпилю файл-трансфер нахуй Такая-то охуенная штука, раньше читал по неё, но не мог понять зачем она нужна.
979415
#290 #979337
>>979075
Какая?
979340
#291 #979340
>>979337
Ебать. Пошёл нахуй.
979342
#292 #979342
>>979340
Ты мне можешь объяснить какую функцию выполняют в твоей кодобазе тесты? Пользователь один хуй не увидит никаких тестов - ни интеграционных, ни юнит, ни ассептанс. Зачем ты пишешь тесты?
#293 #979345
Сезон курсача, анон.
Имею простую форму. В ней DataGridView, привязанный к BindingList. В DataGridView экземпляры класса, который состоит из строк, int'ов и ещё двух классов. Саму информацию храню в JSON. Нужно реализовать кнопку Edit, где откроется другая формочка, где можно будет всё отредактировать. Такой вопрос, как мне из DataGridViewRow получить объект, чтобы потом другая форма его изменила? Кроме SelectedRows других манипуляций не знаю.
979356
#294 #979356
>>979345
Tour selected = (Tour)TourDataBase.CurrentRow.DataBoundItem;
Нагуглил уже
979388
#295 #979388
>>979356
А как потом изменить объект, ведь DataBound - readonly
#296 #979415
>>979218
Ну скинь пару строк, что накодировал там.
#297 #979506
>>978703
Сколько получаешь, если не секрет?
#298 #979583
>>978878
Та никаких бубном, программы и фичи => установить фичу IIS.
В 10 кликов ставится. Ну а вот разобраться и запустить первую апликуху до пары часов может занять, если вдруг где-то тупанешь в процессе - это да
#299 #979608
>>978703
2,5к$
1228 Кб, 1200x1800
#300 #979610
Поясните за Пик.
979686
#301 #979614
>>978703
БЛЯЯЯЯЯДЬ.
Наткнулся на видеоурок от айтидивеэн.
Типа базовое занятие про СОБЫТИЯ евентс то есть.
Сука видео больше десяти минут, и этот мудак лысый вообще ничего про события не сказал кроме "вот видите, если мы пропишем слово евент то тут будет не квадратик а молния" и так все 10 минут. Ахуеть.
Это типа что бы я платный курс купил?
Чет эффект обратный.
979635
#302 #979635
>>979614
Ну плиз, ну купи.
#303 #979686
>>979610
Какой же я старый, как время быстро летит.
Когда я интересовался техникой всего современного IT еще и в помине не было, эхехехе.
Не верится что джава в 96 появилась, это же вчера было.

Пора бы мне личинусом обзаводится.
А казалось бы, только вчера школу окончил, только вчера университет.
80 Кб, 719x540
#304 #979983
Анон, я хочу странного.

В общем есть одно консольное приложенеи, которое делает что нужно. Но время идет и функционал потихоньку разростается. И пришла мне в голову мысль, что неплохо бы в него запихнуть окошко, то самое из winforms. Что бы с параметрами командной строки оно делало что нужно, а без параметров выводило некоторый виндовый интерфейс.
Это вообще возможно? Или лучше переписать сразу под формы?
980071
#305 #980071
>>979983
Канешн можно. Привязываешь консоль (гугли pinvoke AttachConsole), делаешь всё в ней как раньше и выключаешься до инициализации окна. Если нет параметров - запускаешь графоний.
50 Кб, 357x500
#306 #980086
>>967207 (OP)
Начал изучать этот ваш Шарп. Хотел сделать простенькое десктопное приложение для загрузки больших текстовых файлов. И застрял на том, что не могу заставить работать прогрессбар. Он отказывается обновлять прогресс хотя я меняю ему значение после каждой загруженной строки. Погуглил - мне что реально для такой ерунды нужно изучить многопоточное, асинхронное программирование, какие-то лямбды и делегаты? Что так сложно?
#307 #980089
Есть два объекта, нужно наладить взаимодействие между ними.

Создал промежуточный объект, который имеет методы SendData<T>(string type, T data); и Notify<T>(string type, T data);.

В SendData и Notify есть switch, который в зависимости от значения переменной type делает то или иное действие. Например для формы нужно получить данные из сети: SendMessage("GetData", ""); далее в switch по type ищется нужный вариант и вызывается метод Notify(type, data) объекта, который нужно уведомить (для работы с БД например). Когда данные получены выполняются такие же действия, только в обратную сторону.

Вроде все получилось, но есть некоторые вещи, которые смущают:

1) в Notify приходится приводить data к нужному типу. Это нормально?
Может я как-то неправильно использую дженерики? Создать инкапсулирущий данные объект для передачи между объектами?
+
2) в switch метода SendData бывает приходится вызывать статические функции напрямую, так как нету объекта, который нужно было бы уведомить. Например получаю список принтеров(InstalledPrinters) для формы. В итоге приводить типы нужно прямо в switch. Это очень плохо? Перенести вызовы подобных функций в код формы нормально?

Нужны Ваши советы/мысли в развернутом виде
980096981352
#308 #980090
>>980086
Да. И тебе это в любом другом языке то же самое делать придётся. События же.
Можно сразу рассчитать это время, делением размера файла на скорость передачи (если она тебе известна, не знаю куда ты там что грузишь), но так только васяны всякие делают.
980097
#309 #980091
>>980086

>Что так сложно?


Уебывай, тебя никто не держит.
#310 #980092
>>980086
Майки решили не заёбываться и заебашили всю работу форм в один поток, из-за этого происходит такая дичь, что и логика программы, и её отрисовка идут в одном потоке. Поэтому хочешь быстро - миришься с висящим в больших вычислениях интерфейсе (а ещё он может вообще нахуй исчезнуть, если свернуть надолго прогу, лол), хочешь красиво и/или хочешь чтобы можно было делать много всего и сразу - ебашишь многопоточность.
#311 #980093
>>980086
Приложение работает в однопотоке.
Файлы обрабатываются какими-нибудь блокирующими функциями, поток блокируется - интерфейс не обновляется. Такие дела.

Про многопоточное мало знаю, но думаю суть верно передал.
#312 #980096
#313 #980097
>>980090

>любом другом языке то же самое делатьпридётся


Ну не в любом. В том же богомерзком VBA в формах интерфейс обновляется сразу без фокусов с потоками.
980100
#314 #980100
>>980097
Ну так если бы в нём ещё и интерфейс не обновлялся, то там вообще хтонический пиздец бы был
#315 #980111
Если передавать данные в другую программу при помощи сокетов, обязательно ебать эти стримы и tcpclient'ы, или для локалхоста есть способ сделать это изящней?
980120980125980286
#316 #980120
>>980111
Можешь взять Redis, ZeroMQ и что-то в этом роде.
980125
#317 #980125
>>980120
>>980111
Redis, может, не в тему я тебе посоветовал.
Вообще непонятно, как ты хочешь передавать через сокеты не используя сокеты.
#318 #980286
#319 #980305
>>980086
Backgroundworker почитай.
980431
#320 #980431
>>980305
deprecated, заменено Task+IProgres
980493
#321 #980493
>>980431
Ему же попроще нужно. Воркер самое то.
#322 #980587
Довольно глупый вопрос наверное, но все же.

Я недавно начал учить C#, как в принципе и само программирование, и у меня возник вопрос: где брать инфу по пространствам имен? Допустим тот же System.IO. Я пытался просто гуглить, но там не было подробной информации. Т.е там описывалось как создать текстовый документ, как в него что нибудь записать и на этом в принципе все (я сомневаюсь, что это и есть весь функционал). Может я вообще какую-то хуйню хочу? Я всего то пару месяцев занимаюсь, много не понимаю, так что не шкварьте особо если хуйню написал :(
980618980680
#324 #980680
>>980587
мсдн гугли. Там по всем пространствам имен есть удобный списочек всех членов с крадким пояснение wtf.
Для нестандартных билиотек можно самому полуавтаматически билдить подобную доку.
#325 #980700
Писал когда то в бородатые времена под WinForms, сейчас сел быстро накидать формочку в WPF. Со всем более менее разобрался, но ПРОСТО СУКА НЕ ПОНИМАЮ КАК ВЫСТАВИТЬ РАЗМЕРЫ. Выставляю например MinWidth="150" MaxWidth="500". Начинаю тащить StackPanel, и кнопка на ней спокойно сжимается в точку блять, и ей похуй на ее MinWidth. Делаю вывод что данные значения это нифига не пиксели. Тогда почему эти же цифры в свойствах формы, это габариты формы в пикселях. Короче интуитивно нихуя не понятно, в мсдн какая-то вода про абсолютные и относительные размеры.
980881985242
#326 #980761
Не, ну ребята это какой то пиздец. Всю жизнь почти на линуксе сидел. Под него кодил. Под ним кодил. Тут в одном из проектов понадобилось тянуть данные с Microsoft Analysys Services(OLAP Cube)
Проект написан на PHP и подключится к этой всей байде через PHP нету возможности. Было решено написать программу на C# которая бы отдавала данные, все это отлично работает, если запускать напрямую из консоли. Но когда PHP пытается вытащить данные, запустив консольный скрипт и получив результат, то ничего в ответ не приходит. Ну что за блять гемморой с виндой?Кто знает в чем может быть причина?Под винду вообще не писал ничего и с C# первый раз вообще работаю.
Уже даже не знаю что делать.
980825
#327 #980825
>>980761
К сожалению все телепаты треда в отпуске. Попробуйте позже.
980831
#328 #980831
>>980825
https://pastebin.com/B1Xrb9z6
Попытался в файл сохранить...Также из консоли сохраняет только
980839
#329 #980839
>>980831
Покажи, как ты вызываешь скрипт из PHP. В программе вроде всё чисто. Возможно используешь в качестве разделителя не пробелы или с путями что-то напутал. Короче проблема вроде не в коде программы.
980848
#330 #980848
>>980839
https://pastebin.com/nw8Qb3eJ
С PHP он тоже выполнялся. Я получал вывод ровно до того момента, как нужно установить соединение с сервером кубов вот здесь
"new Microsoft.AnalysisServices.AdomdClient.AdomdConnection()"
У меня есть такое подозрение, что скрипт в консоли под моей учетной записью Windows выполняется, поэтому все проходит без проблем.
А PHP с апачем запущен от другого юзера, поэтому подключение не выполняется.
Есть ли возможность выполнить подключение как то именно с моей учетки Windows?Может в этом все дело?
980851
#331 #980851
>>980848

>У меня есть такое подозрение, что скрипт в консоли под моей учетной записью Windows выполняется, поэтому все проходит без проблем.


Не исключено, также можешь прочекать брандмауэр и hosts.

>Есть ли возможность выполнить подключение как то именно с моей учетки Windows?


Не работал с твоими технологиями, но вряд ли. Обычно такие вещи требуют работы от своих учётных записей, но ты можешь дать им прав, если в них окажется проблема.
Кстати, приложение нормально до конца доходит, когда ты его запускаешь из PHP? Исключения не выкидывает?
980853
#332 #980853
>>980851
В PHP все отлично просто, все остальные части приложения работают без нареканий, только с этой проблемы возникли. Но никаких исключений не выдает.
Ладно, спасибо большое. Буду копаться дальше.
#333 #980860
Платиновый вопрос, наверное.
Есть одно консольное приложение, к которому появилась необходимость прихуячить интерфейс. Собственно я удалил в нём точку входа и подцепил в форм-проект как библиотеку. Как теперь организовать вывод в текстбокс той информации, которая у меня ранее выводилась на консоль?
67 Кб, 612x727
#334 #980863
#335 #980881
>>980700
Это не пиксели, а Device-Independent Pixels. 1 DIP = 1/96 дюйма. Но это особой роли не играет, ты видимо просто с разметкой проебался.
#336 #980896
Подскажите либу для работы с MySQL/PostgreSQL/SQLite(не EF)
980902
#337 #980902
>>980896
ADO.NET, как будто у тебя выбор есть
980946
10 Кб, 429x410
#338 #980936
Програмач помоги разобраться.
Решарпер заебал предлагать сделать такое то поле readonly
Прочитал его объяснение, но нихуя не понял посыла. Типа так ты будешь уверен, что твоя програма не будет его изменять. Как будто я не знаю что должна изменять моя программа. В общем, поясните какой практический смысл readonly?
980971
#339 #980946
>>980902
.NETHubernate, правда только для .NET 2.0 и ниже.
980947
#340 #980947
>>980946
Kek, не губернэйт, а гибернейт.
#341 #980971
>>980936
Например для элемента Windows это свойство определяет можно ли его редактировать.

Скажем поле текста, иногда тебе нужно сделать его неизменяемым, readonly. В этом и польза.

Ты ещё спроси, зачем константы нужны.
981061
#342 #981061
>>980971
Ты объяснил так же как это пытался сделать решарпер.
У меня есть некая переменная которая не изменяется. Она не изменяется, потому что я так решил. Никто другой ее изменить не сможет. Так какой мне профит от того что я добавлю к ней лишний модификатор? Что я выиграю кроме того, что решарпер успокоится?
981073981104
#343 #981073
>>981061

> Никто другой ее изменить не сможет.


Святая наивность
32 Кб, 1920x1080
#344 #981074
Кто работал с нет кором и его user secrets. Хочу хранить там ключ для api. Вообще-то, хотел в апписетингс, но говорят, что надо там. При загрузке проекта в гитхаб, пользователь сможет использовать его?
981075
#345 #981075
>>981074
Сможет.
Нужно в отдельном конфиге, который заигнорен и импортируется в основной
#346 #981104
>>981061
Любой может изменить эту переменную напрямую в памяти, суть в том, что твои классы этого сделать не могут ЛЕГАЛЬНО.

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

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

Поэтому раньше использовали КАПС для того чтобы выделять константы. Сейчас дебаггер не даст тебе ошибиться, если ты юзаешь слово const.
11 Кб, 667x295
#347 #981154
Ребят, почитал тут про reference types и value types и вычитал, что string относится к reference types, как и те же массивы. Попробовал с массивами провернуть то что на пике, и он вывел мне то, что я собственно и ожидал (значения, которые я задал в методе). Попробовал сделать тоже самое со string, но вместо sdfsdsdf я получил то, что я написал в Main. Почему?
#348 #981156
>>981154
Иммутабельность.
#349 #981158
>>981154

Здесь ты еще передаешь ссылку на строку по значению. Если хочешь, чтобы в мэине была та же строка, что и в методе тебе необходимо передавать ссылку по ссылке.
То есть static void Method(ref string a)

Также троки иммутабельны. Их нельзя изменять, это значит что после каждого присвоения строки создается новая строка, а ссылка на предыдущую строку теряется. Если хочешь изменять строки используй StringBuilder.
981159
#350 #981159
>>981158
Спасибо
141 Кб, 800x600
#351 #981336
>>973308
Выделить все сигнатуры в объекты, а методы в декораторе - сгруппировать. Затем для сигнутур-объектов организивать наследование и иерархию. Все зависит от количества методов в классе. Он твоей тысячи - можно вешаться.
981338
#352 #981338
>>981336

>1000 объектов


Да ну нахуй, я лучше через Caste.DynamicProxy всё обмажу.
#353 #981339
>>975569
В нормально-спроектированном приложении твой пример будет называть приватным членом класса и публичным автосвойством.
#354 #981345
>>977477
Подскажи, как обернуть тестами код, с одной стороны которого, допустим, игровой движок, ну или что-то закрытое и на выходе находится что-то сложно тестируемое. Со стороны поступления данных, еще ладно, ну а вот с другой стороны - совершенно не пойму.
другой анон
#355 #981352
>>980089
Запомни: кастовать типы к строкам и свитчиться по ним, или через их их перебирать - плохо! Тебе необходимо использовать шаблоны. Например завести фабрику, которая будет по типу возвращать объект, который будет инкапсулировать логику нотификации. Для каждого типа завести отдельный объект и регать в фабрике по типу. Внутри объектов делай что хочешь: хоть статику вызывай, это уже другая проблема.
Нужна новая логика для типа? Запилил новый объект по интерфейсу, регнул в фабрике и свободен.
#356 #981361
Бегаю по форумам, читаю Труеслена, но ощущаю, что просто получаю знания и все. Не уверен, что смогу ими пользоваться

Продолжать в таком же духе? Или что-то делать, помимо того, как смотреть в книгу и на чужой код?

Просто открыл javarush, там как-то поживее - задачки есть. Но это ява, а я сперва хочу один язык нормально изучить, а не по стульям прыгать
981389
#357 #981381
>>981154
В первом случае ты изменяешь объект (обращаешься к существующему), а во втором - меняешь ссылку. Не изменился бы любой reference type, не только строка. Передача в метод - это, формально, не передача про ссылке, а копирование ссылки.
#358 #981389
>>981361
Что тебе мешает почитывая троелсена сразу писать простые программы, чтобы руками пощупать что написано в книге?

Так просто по книгам не научишься. Код еще писать нужно. Больше кода богу кода!
#359 #981394
>>981154
Не делай так ни с какими параметрами методов. Считай их константой.

Просто какое-то ожидаемое изменение параметров в методе образует, самый сильный семантический тип связаноти в программе. Ты как программист должен постоянно держать в голове: так сейчас я вызову Foo(Some) и у Some появится значение Bar. Когда-нибудь ты об этом забудешь или просто в неправильном месте вызовешь Foo тебя будет ожидать боль отладки. Много боли.

Поэтому в случе со строкой надо делать ретурн чтобы яано показать что возвращаетсся измененая строка.
b = Method(b);

И тут ты наверно подумаешь зачем тебе параметр который никак не влияет на результат? Правильно, либо выкинь его, либо как-то используй.
#360 #981396
Поставил xamarin studio со всем чем требовалось. Почему-то не запускается. Кто-нибудь сталкивался с такой проблемой?
984070
#361 #981413
>>981154
А если въебенить
static void Method (out string a) {...}

...
Method(out b);
...

Или так уже не модно?
981414
#362 #981414
>>981413
Хотя о чем это я. К вопросу о референсах эт не относится.
2594 Кб, Webm
Свойства #363 #981419
Если, например, у меня есть закрытое поле и открытое свойство, которое обеспечивает доступ к полю, то должен ли я внутри класса работать исключительно со свойством, а не на прямую с полем? Или это неважно? Главное, чтобы это не приводило к ошибкам?
981423982755
#364 #981423
>>981419
первое что ты должен сделать - убрать сеттер.
57 Кб, 584x499
#365 #981429
Тимлид вкатился, взял на работу студента, чем его занять? Накидайте задачек для WPF, Winforms, и в общем по языку, еще можно ms sql, entity framework.
#366 #981430
>>981429
И да, я забыл волшебное слово, "Пожалуйста".
#367 #981437
>>981429

>взял на работу


>чем его занять?


Работой?
981439
#368 #981439
>>981437
Ну я думаю моя работа слишком сложно для него, надо втянуть чем-то.
#369 #981440
>>981429
Пусть огород копает
#370 #981446
>>981429
Пусть сделает двач на впф с самописными юзерконтролами, заюзает еф. Все это обмажет тестами, моками, нинжектами.
#371 #981524
Господа, я с языком не знаком, поэтому могу делать какую-то глупость.

Итак, есть код
[CODE]List<double[]> learn_data = new List<double[]>();
double[] datum = new double[numInput + numOutput];
...

foreach (double[] t in inner.data)
{
if (t.Length != numInput + 1)
{
throw new Exception("Datum length is " + t.Length + ", but " + (numInput + 1) + " expected");
}
Array.Copy(t, 1, datum, 0, numInput - 1);
for (int n = numInput; n < numInput + numOutput; n++)
{
datum[n] = 0;
}
if (t[0] >= numOutput)
{
throw new Exception("Input has " + t[0] + ", but maximum is " + numOutput);
}
datum[(int) t[0] + numInput] = 1;
learn_data.Add(datum);
if ((Math.Abs(learn_data[0][0] - 0.038095) > 0.0001) ||
(Math.Abs(learn_data[0][1] - 0.19047619) > 0.0001) ||
(Math.Abs(learn_data[0][2] - 0.1047619) > 0.0001))
{
throw new Exception("Data broken");
}
}

[/CODE]

Почему через несколько итераций в массиве foreach значения первого элемента ломаются? Я подумал, что дело в том, что там один и тот же массив, и может быть используется указатель на него, а не копия данных, но нет, после второго и третьего прогона внутри цикла всё окей, а через некоторое время (не знаю сколько итераций, но длина inner.data = 1000) данные затираются. В чём дело?
Троелльсона не читал, возможно, что тут что-то на поверхности

Заранее спасибо
#371 #981524
Господа, я с языком не знаком, поэтому могу делать какую-то глупость.

Итак, есть код
[CODE]List<double[]> learn_data = new List<double[]>();
double[] datum = new double[numInput + numOutput];
...

foreach (double[] t in inner.data)
{
if (t.Length != numInput + 1)
{
throw new Exception("Datum length is " + t.Length + ", but " + (numInput + 1) + " expected");
}
Array.Copy(t, 1, datum, 0, numInput - 1);
for (int n = numInput; n < numInput + numOutput; n++)
{
datum[n] = 0;
}
if (t[0] >= numOutput)
{
throw new Exception("Input has " + t[0] + ", but maximum is " + numOutput);
}
datum[(int) t[0] + numInput] = 1;
learn_data.Add(datum);
if ((Math.Abs(learn_data[0][0] - 0.038095) > 0.0001) ||
(Math.Abs(learn_data[0][1] - 0.19047619) > 0.0001) ||
(Math.Abs(learn_data[0][2] - 0.1047619) > 0.0001))
{
throw new Exception("Data broken");
}
}

[/CODE]

Почему через несколько итераций в массиве foreach значения первого элемента ломаются? Я подумал, что дело в том, что там один и тот же массив, и может быть используется указатель на него, а не копия данных, но нет, после второго и третьего прогона внутри цикла всё окей, а через некоторое время (не знаю сколько итераций, но длина inner.data = 1000) данные затираются. В чём дело?
Троелльсона не читал, возможно, что тут что-то на поверхности

Заранее спасибо
981571981591
#372 #981571
>>981524
форматирование поломалось, вот нормальное https://pastebin.com/3DpvvXc4
#373 #981576
>>981429
Берешь кароче то чем занимаешься ты - приподносишь ему задание в упрощенном варианте, но со спецификой твоей работы.

Базы данных там. Звук, изображение, че ты там вообще делаешь.
В конце концов посади его багги искать или тестировщиком.
78 Кб, 560x560
#374 #981578
«Через год-два .NET Core потеснит Java на рынке enterprise решений», — Интервью с Jon Skeet, Google

https://habrahabr.ru/company/jugru/blog/327492/

Как сосется джавадауны?
981587981589981603
27 Кб, 500x369
#375 #981587
>>981578

>Через год-два

#376 #981589
>>981578
Сочные багеты в комментах.
981604
#377 #981591
>>981524
твою же ж мать. Ясно всё, List.Add не делает копии объекта, он суёт внутрь себя ссылку. Я проглядел, когда смотрел на кол-во пунктов в List. Исправил, создавая datum в каждой итерации
#378 #981603
>>981578
Сомнительно.
Алсо

>— Абсолютно! Я бы сказал, что это не просто хорошая идея для .NET, это необходимая идея для .NET. Я считаю, что судьба .NET в виде Windows-only платформы с поддержкой сторонних не-очень-то-хорошо-поддерживаемых окружений, нишевых платформ, с которыми люди больше страдают, чем работают, никогда не была перспективной. Так что это была необходимая работа, которая не просто высвободила большой потенциал, но также и не позволит .NET устареть через несколько лет



Как я уже тут гже-то писал.
МС вложила кучу бабок в дотнет, и осталась в ебучих убытках, теперь пытается с дохлой коровы хоть шерсти клок.
Но все тщетно.
Иибо их говно изначально залочено под винду, чтобы было кросплатформенно нужно много вещей менять кардинально.
Просто тупо все с нуля делать.

Чего они не делают, а пытаются адаптировать то, что есть.

А если они будут делать как надо, то непонятно вообще, где тут их профит, как они зарабатывать то будут.
982507
#379 #981604
>>981589
Конечно.
Из андройда скоро выкинет Го.
Из интерпрайза дотнет.
Останется сотня специалистов программировать стиральные машинки... а нет виндус же на АРМ вышел.
Даже там заменят.

Вы только представьте этот исход миллионов джавадаунов которые будут за еду вымаливать тикеты на апворке.
981609
#380 #981609
>>981604

>Ещё важнее этого разнообразие людей в мире технологий. Я выступаю на многих конференциях, и аудитория, как правило, — белые мужчины, и это расстраивает меня. Нам нужно больше гендерного разнообразия, нам нужно больше расового разнообразия, просто взгляните на статистику… она расстраивает. Каждый должен участвовать в искоренении всех форм сексуального домогательства, всех форм расизма в нашей отрасли. Более того, поощрять окружающих, понимать подсознательные предубеждения и бороться за то, чтобы создать как можно более равное условия деятельности для всех.



>Если отстраниться от нашей индустрии, мои личные интересы — это гендерное равенство в целом, скажем так, я уже 2,5 года начинающий феминист. Поэтому я рекомендую всем прочитать что-то вроде «Everyday sexism», чтобы посмотреть, как этот мир выглядит с точки зрения других людей. Все это довольно страшно, и это, безусловно, изменило мой взгляд на многие вещи.



Ыыыыыыы.... гомо-лесбоиндусня зохаваит ффсегх. КТУЛХУ ФТХАНГ
981707981817981821
#381 #981694
Однако, здраствуйте!
Имеется проблема. В качестве практического задания в универе сказали наваять сайт на ASP.NET, используя паттерн MVC и реализовав схему CRUD.
Проблема в том, что LINQ за каким-то ющенком ругается, мол нету возможности изменить или удалить запись в БД. Что-то вроде линкрелейтед:
http://stackoverflow.com/questions/8406000/sql-connection-failure-in-linq-to-sql
Вот кусок кода, на котором сыпется (и не только на нём):

[HttpPost]
public ActionResult Edit(int id, Client client)
{
try
{
cctxt.Clients.ElementAt(id).Name = client.Name; //cctxt - DbContext для БД
cctxt.Clients.ElementAt(id).Surname = client.Surname;
cctxt.Clients.ElementAt(id).Address = client.Address;
cctxt.Clients.ElementAt(id).EMail = client.EMail;
cctxt.SaveChanges();
return RedirectToAction("Index", "Data");
}
catch
{
return View();
}
}

Вот ссылки на сам прожэкт:
http://rgho.st/79yLtk97f - 1 часть
http://rgho.st/7L4cRVqKh - 2 часть
#381 #981694
Однако, здраствуйте!
Имеется проблема. В качестве практического задания в универе сказали наваять сайт на ASP.NET, используя паттерн MVC и реализовав схему CRUD.
Проблема в том, что LINQ за каким-то ющенком ругается, мол нету возможности изменить или удалить запись в БД. Что-то вроде линкрелейтед:
http://stackoverflow.com/questions/8406000/sql-connection-failure-in-linq-to-sql
Вот кусок кода, на котором сыпется (и не только на нём):

[HttpPost]
public ActionResult Edit(int id, Client client)
{
try
{
cctxt.Clients.ElementAt(id).Name = client.Name; //cctxt - DbContext для БД
cctxt.Clients.ElementAt(id).Surname = client.Surname;
cctxt.Clients.ElementAt(id).Address = client.Address;
cctxt.Clients.ElementAt(id).EMail = client.EMail;
cctxt.SaveChanges();
return RedirectToAction("Index", "Data");
}
catch
{
return View();
}
}

Вот ссылки на сам прожэкт:
http://rgho.st/79yLtk97f - 1 часть
http://rgho.st/7L4cRVqKh - 2 часть
982333
#382 #981707
>>981609
Ахаха, проиграно. Только вчера с тимлидом обсуждал, почему он не берёт в команду девушек, даже на должность секретаря.
981709981878
#383 #981709
>>981707
Вангую, потому что они нихуя не хотят работать, так?
Алсо, аноны, много ли лулзов можно извлечь, борясь за права мужчин с феминистками их же методами?
981784
#384 #981784
>>981709
У них там двойные стандарты во асе поля, так что не особо.
#385 #981817
>>981609

> белые мужчины, и это расстраивает меня. Нам нужно больше гендерного разнообразия, нам нужно больше расового разнообразия, просто взгляните на статистику… она расстраивает


Cuckold as is.
#386 #981821
>>981609
Белые мужчины - это все, что нужно
Девка на корабле - быть беде, потому что начнётся соревнование за самку
И вообще, если он

> выступает на конференциях


то что мешает попасть на эти конференции девушкам, неграм, девушкам-неграм?
981854
#387 #981854
>>981821

>Девка на корабле - быть беде, потому что начнётся соревнование за самку


Лол нет, не по этому.
Пиздец.
981866
227 Кб, 1500x843
#388 #981866
>>981854
А о чем ты думаешь?
981872981976
#389 #981871
>>981429
На моей первой работе меня тупо посадили багфиксингом заниматься сходу. Проект без какой-либо документации, все пришлось познать самому.
#390 #981872
>>981866
Фак, развернул - испугался.
981886
187 Кб, 700x700
#391 #981878
>>981707
Другой тимлид репорт-ин.
Обычно тем кто спрашивает, рассказываю анекдот.

Что общего между девушкой-программистом и морской свинкой?
Морская свинка не имеет никакого отношения ни к морю, ни к свиньям.
#392 #981886
>>981872
Омежка, please.
#393 #981972
Вопрос господам работавшим с vknet. Как найти количество пересечений элементов между двумя коллекциями полученными через groups.get? Трубы горят, помогите пожалуйста.
981978
#394 #981976
>>981866

>А о чем ты думаешь?


То, то мужнины ДОЛЖНЫ за бабу соревноваться, это мерзкий миф, поддерживаемый женщинами, в угоду женщин.

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

А беду женщина приносит, потому, что она неэмансипированная мерзкая тварь.
Которая, видит в офисе свою персональную кухню, в которой нужно захватить власть.

Женщина в 99% случаев не командный игрок. Она всегда играет в царя горы. Плетет интриги, итд.
#396 #982250
>>981978
Я так уже делал. Чет у меня не работает :с
13 Кб, 586x355
3 Кб, 399x86
#397 #982265
>>981978
Есть такой код. Выдает, что совпадений между коллекциями 0, хотя это явно не так. Аналогичный код на питоне работает отлично, а тут залупа какая-то. Второй день бьюсь.
982277982325
#398 #982277
>>982265
Тебе скорее всего нужно компаратор сделать. Потому что сейчас оно по адресу в памяти сравнивает и не находит совпадений.
982291982328
#399 #982291
>>982277
Объясни как :3
982309
#400 #982309
>>982291
На msdn прямо пример есть с интерсект и IEqualityComparer.
#401 #982325
>>982265
Суть в том, что Intersect не работает с коллекциями классов точнее работает, просто он ищет совпадающие ссылки
Лови, и не надо ничего переопределять. Как раз вчера под кривой vknet кодил.
[CODE]
var both = gGroups.Join<Group, int, int, Group>(groups, x => x.Id, y => y.Id, (x, y) => x);
[/CODE]
982328982337
#402 #982328
>>982325

> не работает с коллекциями классов


разумеется, если не реализовать IEqualityComparer, как анон >>982277 сказал
фикс
#403 #982333
>>981694

> ElementAt


этот метод возвращает элемент на указанной позиции. А EF ничего об этом не знает.
Тебе же надо юзать Where или скорее First
cctxt.Clients.First(x => x.id == id).Name = client.Name;
Я уже молчу, что надо проверять есть вообще такие клиенты, а не сразу изменять поля.
Вроде этого:
[CODE]
var client = cctxt.Clients.FirstOrDefault(x => x.id == id); // предполагаем, что id ключевое поле
if (client != null)
{
client.Name = ...;
client.Surname = ...;
...
cctxt.SaveChanges();
return RedirectToAction("Index", "Data");
}
return View();
[/CODE]
983917
#404 #982337
>>982325
Спасибо. Отпишусь как попробую:3
#405 #982380
>>971765
>>971787

Абстрактные классы, как уже писали выше, позволяет реализовать паттерн "шаблонный метод". То есть, описать реализацию метода один раз, чтобы он работал для всех потомков.

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

Кроме того, в абстрактном классе можно определить паблик и протектед поля поля, что недоступно для интерфейсов. Вызов свойств по производительности равнозначен вызову метода. Обращение же к полю значительно легче. Для большинства случаев разница эта не важна, и ею можно пренебречь. Но бывают таки случаи, где это может оказаться важным.

Единственное преимущество интерфейса над абстрактным классом, это возможность множественного наследования.
#406 #982487
Полезные курсы по asp.net mvc + ef6, может пригодится кому, товарищи
Не для нулевого уровня, тем не менее.
http://rutracker.org/forum/tracker.php?nm=Pluralsight Become a Full-stack .NET Developer
982510
#407 #982507
>>981603
+15 кофейных зерен. А теперь, господин Раджеш Парахвешиваш, уёбывайте.
#408 #982510
>>982487
Спасибо. Хотя я уже не верю, что у меня с ним взлетит.
982516
#409 #982516
>>982510
Не сдавайся. Пиши код, читай, смотри. Сам только год назад вкатился в аспу. Главное, чтобы было желание.
Ну и сам язык надо знать, особенно linq, ef.
Вопрос по тестам #410 #982553

> Because unit tests need to be predictable, easy to bootstrap, and fast, hitting an actual remote API is a test smell.



А можно ли дёргать реальные API сайтов хотя бы в интеграционных тестах? Вся суть моей программы заключается в том, что она предоставляет более удобный интерфейс к API. Я, конечно же, могу замокать ответы HTTP-клиента и не обращаться к реальному API, но что если API поменяется, как тогда тесты мне об этом скажут?
#411 #982701
>>975634
Полиморфизм, инкапсуляция, множественное наследование.

Есть у тебя три класса. Один класс выполняет функцию хранения некоторого параметра. Второму нужно к этому параметру иметь доступ чтения, но он ни в коме случае не должен его менять. Третьему нужно иметь возможность этот параметр менять. Описываешь два интерфейса. Один с сеттером, второй с геттером. Первый класс реализует их оба. Второй агрегирует первый, как экземпляр интерфейса геттера, третий агрегирует первый, как экземпляр интерфейса сеттера. Кроме того, ты можешь наклепать пачку таких классов, как первый, засунуть их в лист, и обращаться к их методам, внутри которых разная реализация.
#412 #982706
Сап, анончики.
Подскажите, как статическую линковку делать в .net? Надо залинковать одну dll'ку к проекту, но не могу понять, как это сделать статически, а не через reference'ы.
982710
#413 #982710
>>982706
Ты еще тот извращенец.
Если кратко, то без бубна - никак.
Вот тут подробнее описали почему. http://www.cyberforum.ru/net-framework/thread638874.html
982713
#414 #982713
>>982710
а какие альтернативы?
Дело в том, что проект использует Mono.Addins, не так давно от них решили отказаться, а таску по их выпилу повесили на меня.
Поэтому мне просто нужно в определенном месте (там, где раньше это делалось с помощью AddinManager) подргужать классы ручками, вот думаю, как бы лучше это сделать.
982715
#415 #982715
>>982713
Так а в чём проблема динамически загружать через Assembly.Load?
http://stackoverflow.com/questions/465488/can-i-load-a-net-assembly-at-runtime-and-instantiate-a-type-knowing-only-the-na
Что собственно и происходит на фоне, если посмотришь в сорцах
https://github.com/mono/mono-addins/blob/master/Mono.Addins/Mono.Addins/AddinManager.cs
982716
#416 #982716
>>982715
О, вот это вроде бы как раз то, что мне нужно.
Thx!
#417 #982735
>>981429
На каком курсе студент?
#418 #982755
>>981419
У свойства должен быть только публичный гет-метод(интерфейс класса, упрощение логики, все дела).

Внутри класса лучше сразу работать с приватным полем, т.к. оно в полной власти класса и он какбэ должен знать, что с ним делать.

Если полю нужна какая-то дополнительная обработка при запросе/установке, то есть несколько вариантов разной степени ущербности:
- приватный сеттер. Плохо из-за размытия четкой грани между интерфесом класса и его внутреним состоянием.
- отдельный метод для доступа. Нужно отдельно помнить, что нужно работать только через него.
- копипаст обработки. Тоже можно. так победим!
- вынести поле с нетривиальной обработкой в отдельный класс, у которого будет публичный сеттер(либо контракт) скрывающий всю сложность доступа/обработки. Это концептуальный трувей, но в замен тормоза в рантейме и куча очень мелких классов в проекте. Так-то в энтерпрайзе производительность нинужна, поэтому не нужно бояться мелких классов с тремя с половиной удобными методами.
4 Кб, 267x100
#419 #982909
Шарпач, помоги. Пытался в ксамарин, но вылезла вот такая хуйня при компиляции. Скажи, это лечится?
982921
6 Кб, 981x124
5 Кб, 982x123
#420 #982919
Как-то еще можно ускорить скачивание множества файлов?
Первый пик одним потоком, второй через Foreach.Parallel
Разница в секунду
Вот мой говнокод
https://pastebin.com/vabRtAYi
982933
#421 #982921
>>982909
ксамарин под шарп такое говно, шо я ебал её маму урот. Я пытался под 2.4 андроид писать, сломал оба глаза и забил, лучше уж на яве тогда писать.
982923983082
#422 #982923
>>982921
Т.е. среди разработки под мобилы ява - монополист? А если брать веб-разработку через AVC.Net?
982947
10 Кб, 465x110
#423 #982933
>>982919

> Parallel.ForEach(content, ParallelDownloadContent);


Пробуй так.
Parallel.ForEach(content, new ParallelOptions() { MaxDegreeOfParallelism = 16 }, ParallelDownloadContent);
У меня пикрелейтед, последовательно 1.6сек
Тем не менее разницы большой нет. Почему?
Потому, что задача скачки файла не особо поддаётся разделению по потокам, ведь у неё есть ограничивающий фактор - твой интернет канал. Ожидание же ответа от сервера как раз поддаётся распределению, вот только эта операция итак настолько быстраязадержек особо нет с двача, что не даёт большого выигрыша по времени - у меня на 0.5сек быстрее например.
982940
#424 #982940
>>982933
добавлю, что и скачать ты пытаешься всего 4мб с того треда, там файлов 10 всего.
Если качать отсюда https://2ch.hk/b/res/152135918.html (М) 160файлов, 32мб то разница уже в 2 раза, было 13с, стало 6с.
982967
#425 #982947
>>982923
Да, андроид хоть и на си писан, но нативным почему-то выбрали жаву, мол популярная сочли, портировать апплеты не хотелось. Я считаю, что именно поэтому андроид лагучее говно. Общался с андроид-разрабом, так они всем отделом плевались несколько лет разработки, но что поделать, выбор не велик.

> AVC.Net


Ты имел ввиду ASP.net? Так это же совсем другая технология.
982949
#426 #982949
>>982947

>Ты имел ввиду ASP.net? Так это же совсем другая технология.


Я про значимость в веб-разработке. Востребован ли, много ли профита можно поиметь и т.д. Или лучше окунуться в WPF с формами?
982960
#427 #982960
>>982949
Смотреть, думаю, надо по вакансиям. Лично я сделал ставку на асп. Впф как по мне чисто вспомогательная технология, далеконикуда на ней одной не уедешь.
А так, асп + ef + bootstrap какой, всё это перемешать, посыпать несколькими придуманными проектами выполненными по всем канонам и джун готов.
#428 #982967
>>982940
С этого треда у меня
12 секунд без указания MaxDegreeOfParallelism
12.856 с MaxDegreeOfParallelism = 8
11.5 с MaxDegreeOfParallelism = 16
25 c в один поток
Это на хдд
На ссд 6.736 уже без MaxDegreeOfParallelism
Только нужно было прописать ServicePointManager.DefaultConnectionLimit = 100;
Иначе выбрасывает Socket.Exception
“An existing connection was forcibly closed by the remote host”
982973
#429 #982973
>>982967
Какая скорость инета?
У меня 5,7сек, это как раз мои 50мбит36мб/5,7*8.
у тебя выходит 40
982984
#430 #982984
>>982973
90 с чем-то мбита скорость.
982988
#431 #982988
>>982984
ну значит либо провайдер врёти, либо сервера двача далеко от тебя.
По сути, упирается всё в инет. По крайней мере у меня. Быстрее никак.
982998
17 Кб, 423x461
#432 #982998
>>982988
По скорости вроде все ок.
983010
#433 #983010
>>982998
Последний вариант это комп.
Можешь еще профайлер запустить и посмотреть результаты. Но думаю всё будет висеть на DownloadFile.
Можно запариться и реализовать через HttpWebRequest, а не WebClient'ом, но думаю это бессмысленно, скорость и так достаточна. Сам понимаешь, что используя высокоуровневые абстрации, тобишь шарп, мы жертвуем некоторой долей производительности. А если миллисекунды такважны, то надо на плюсах/си через сокеты делать.
#434 #983073
Привет, аноны. Неофит репортинг ин. Пишу сетевое приложение на C#. Оно состоит из двух частей, которые должны взаимодействовать друг с другом (посылать текстовые сообщения, уведомления другой стороне о чем-либо, команды другой стороне что-то выполнить и т.п.). Никаких ресурсоемких операций ни одна из сторон не выполняет, ни к каким БД не обращается, только простенький обмен командами/сообщениями, которые, однако, специфичны для каждой стороны.
Стоит ли юзать WCF для таких задач? Про WCF я слышал краем уха и не совсем понимаю, для чего оно нужно. Сейчас в мыслях сделать какой-то недопротокол взаимодействия: выделить сообщения первой части и сообщения второй части, и реализовать все это на сокетах. Но хотелось бы знать, как это сейчас делается более-менее по фен-шую. Заранее спасибо.
#435 #983082
>>982921
Ээ, анон, я думал, что сейчас Труеслена дочитаю и начну изучать ксамарин :(
983291
#436 #983249
Для хобби нужно написать маленькую утилиту, которая бы читала значения из памяти по заданным оффсетам азаза мамкин хакир (нет). Хотелось бы небольшую формочку.

C# хорошо впишется для такого или все же лучше делать на C/C++? Вроде бы принято считать, что для низкоуровневых задач С лучше заходит, но раз формочка...
983282
#437 #983282
983305
#438 #983291
>>983082

> Труеслена дочитаю


Лучше задрочи навыки сначала, если недавно вкатился.
983426
#439 #983305
>>983282
Я пока не приступал к решению, разбираюсь с поинтерами в упакованном экзешнике. Меня интересовало в целом, стоит ли связываться с шарпом сегодня ньюфагу для написания подобной утилиты?
#440 #983362
Учебник Павловской (итмо) по шарпу годный, или древнее говно?
983378
#441 #983378
>>983362

>руснявые "учебники"


Априори говно.
983497
#442 #983379
Поставил SharpDevelop. Все правильно сделал?
983380
#443 #983380
>>983379
Нет.
983384
#444 #983384
>>983380
Ну хуй знает, все вроде работает и мало весит.
983398
#445 #983386
Что это за блюющая корова на второй пикче?
#446 #983398
>>983384
Студию ставь, не рви жеппу.
986188
#447 #983426
>>983291
Дрочить проектами? Прочитать Рихтера?
983663
#448 #983448
Если мне нужно, чтобы метод выполнялся допустим каждые 1000мс, то какой мне нужен ивент для формы?
983450
#449 #983450
>>983448
Эвент tick, но не у формы, а у таймера.
#450 #983497
>>983378
Русофоб, иди нахуй.
983502
#451 #983502
>>983497
Новые мантры по методичке?
983508
#452 #983508
>>983502

>"руснявые учебники априори говно"


>что то кукарекает за мантры

983510983511
#453 #983510
>>983508
А какие есть хорошие?
мимо
983522
#454 #983511
#455 #983522
>>983510
По чему? По Шарпу - хз, а в принципе - учебников от российских авторов много хороших, особенно мгушных из не мгушных - фихтенгольц по матану убергоден какого хуя стоит сказать что есть что то годное рфское/советское - прискакивают +15 рублевые?
983526
306 Кб, 624x832
#456 #983526
>>983522
Как мимохуй подмечу, что есть общепризнанная классика. Тот же Рихтер. Зачем изобретать велосипед?
Русские авторы работают в Microsoft? Увы, не думаю. И мне, как мимохую, не внушают доверия книги русских авторов

Метан и тд - это уже совсем другая история
983529983543983666
#457 #983529
>>983526
Матан*
#458 #983543
>>983526
Так я не за это пояснял, а за то что считать все русские учебники по чему угодно априори говном - неправильно. А за шарп - верно, есть Рихтер/троелсен/албахари/скит - остальное нинужно.
983666
#459 #983663
>>983426
Верно. И linq обмазаться не забудь, без него никуда сейчас.
#460 #983666
>>983543
В программировании все учебники от русских авторов говно, это так.
Не сравнивай матан с программированием. Математиков у нас много годных, программистов книгописцев - ноль.
Вот этот анон годно пояснил >>983526
>>983543
Думаю он имел ввиду именно шарп. По шарпу всё же априори говнище лютое.
#461 #983899
Как компилировать в х64?
983910
#462 #983910
>>983899
ПКМ по проекту/солюшену -> Configuration Management.
#463 #983917
>>982333
Большое спасибо тебе, анон, заработало!
#464 #984070
>>981396
Бампану логом. https://pastebin.com/4hYSSbs0
Кто-нибудь сталкивался?
984073
#465 #984073
>>984070
System.Array.Empty() отсутствует же.
НАСТАЛО ВРЕМЯ ПЕРЕУСТАНОВИТЬ МОНО, МОНО САМ СЕБЯ НЕ ПЕРЕУСТАНОВИТ! ПЕРЕУСТАНОВИ МОНО, ВЕДЬ ТЫ СВОБОДНЫЙ ОТ СТУДИИ ЧЕЛОВЕК!
984075
#466 #984075
>>984073
Переустанавливал и моно, и самарин.
#467 #984078
https://appdb.winehq.org/objectManager.php?sClass=application&iId=892

проверьте пожалуйста кто-нибудь 2017 студию под вайном
984433984468
#468 #984433
>>984078
А вы, батенька, знатный извращенец.
#469 #984468
>>984078
Бля, лучше просто Rider себе поставь и не еби мозг.
984559
#470 #984559
>>984468
говно из говна
#471 #984729
Ребят, срочно нужна ваша помощь. Что мне делать? Дальше изучать JS(осталось ровно половина курса) или начинать изучение C#? Проблема в том, что я не могу решиться, то ли довести дело до конца и приступить к новому, то ли не мучить себя и начать заниматься интересным мне(в данный момент) делом?
984741984749
#472 #984741
>>984729
Доведи до конца, не прыгай пока. Потом за Шарп сядь, будешь на ЖС как на говно смотреть.
#473 #984749
>>984729
Слушай сюда. Запомни нахуй. Всегда доводи какую-то хуйню до конца. Пусть плохо. Пусть днищенски. Но доводи до конца. Забудь о перфекционизме. Главное взять и закончить начатое. Это очень важный и полезный навык.

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

мимо
984757984802
#474 #984757
>>984749
Спасибо
#475 #984802
>>984749
Двачую этого.
#476 #985175
Здравствуйте, суть такова. Пишу диплом на асп.нет коре с бутстрепом и прочим и мне нужен рич текст редактор, чтобы встроить его в представление и загонять текст из него в файл. Также оче желательно впердолить в него пользовательские стили. По сути - просто применение, допустим, болда и установка нужного кегля с одной кнопки. Можете что-нибудь посоветовать?
985456
#477 #985176
Народ такие дела, с программированием знаком давно, правда на уровне хеллоуворлдов, решил C# занятся посерьезнее, ща читаю троелсена. Хочу запилить хоть какое нибудь приложение на asp .net, какие ресурсы гайды материалы посоветуете
985208
#478 #985208
>>985176
Metanit, ProfessorWeb.
Для начала достаточно.
Потом читай оф мануалы на msdn.
985456
#479 #985231
[Return("pisechque")]
public Object method();

Как вставить код в метод помеченный атрибутом?
985234
#480 #985234
>>985231
Просто.
985241
#481 #985241
>>985234

пошол нахуй, дебил
#482 #985242
>>980700
Продолжаю развлекаться.
Хочу менять в другом потоке элементы окна. При этом мне надо слипнуть этот второй поток на 5 секунд. Я делал так, но я уже понял что Thread.Sleep() останавливает мне основной поток(10 строка):
[code lang=c#]
var borderColor = Brushes.Green;
if (!parser.isMatch(MatchingText.Text)) {
borderColor = Brushes.Red;
}

Application.Current.Dispatcher.BeginInvoke(
DispatcherPriority.Background,
new Action(() => {
MatchingText.BorderBrush = borderColor;
MatchingText.BorderThickness = new Thickness(7d);
Thread.Sleep(5 * 1000); // Но тут он слипает не себя, а главный поток
MatchingText.BorderBrush = Brushes.Transparent;
MatchingText.BorderThickness = new Thickness(1d);
})
);
[/code]
Пойду пока поищу дальше.
985251985254
#483 #985251
>>985242
сука, видимо надо было использовать csharp вместо c#
#484 #985254
>>985242
Во первых блять элементы окна нельзя менять из других потоков, во вторых блять Application.Current.Dispatcher.BeginInvoke это нихуя не второй поток, а тот же самый.
985263
#485 #985263
>>985254
Я кажись понял, я просто анонимный метод передаю основному потоку на выполнение. И он понятное дело себя слипает, согласно коду.
Как мне на 5 секунд моргнуть рамкой тогда, в какую сторону смотреть?
985265
#486 #985265
>>985263
Открой для себя анимацию.
985273
#487 #985273
>>985265
Спасибо, сейчас посмотрим.
#488 #985452
Привет. Не важно, кто я такой. Важно, какой у меня план курсач.
В форме имею текстбокс и календарь, текстбокс должен отображать разный текст, в зависимости от дня календаря. На сегодня один текст, на завтра другой, на послезавтра, допустим, текста нет - добавьте через другую кнопку ниже. Не понимаю как это реализовать. То есть, как добавлять текст в текстбокс я в курсе, как заставить его плясать под календарь я не понимаю. Кто-то может что-то посоветовать?
985456
#489 #985456
>>985175
Попробуй подключить сторонний плагин, Кирилл.
>>985208
Люто двачую этого, сам по ним начинал. Второй вообще от корки до корки несколько раз изучил.
>>985452
Это веб-приложение, десктоп приложение, мобильное или ещё какое-то? Как я это должен понять?
Скорее всего web - просто генерируй страницу и отправляй(лол)
985479
#490 #985479
>>985456
Десктоп приложение. Сорян, не знал, что это тоже надо указывать
985530
#491 #985530
>>985479
Юзай событие DateChanged у MonthCalendar
Для хранения пар (дата,текст) можно юзать Dictionary<DateTime, string>
Получай выделенную дату через метод SelectionStart, если выделено несколько дней, то считаться у тебя будет только первый.
получится что-то вроде:
dic.Add(calendar.SelectionStart, labelForDate.Text);
Надеюсь дальше разберёшься.
985539985658
3304 Кб, 3104x1746
#492 #985539
>>985530
Спасибо.
Лол, я уже собственный класс пикрил начал делать для такого
985564985695
#493 #985541
господа, вкатываюсь в бекэнд разработку
подскажите какие проджектики запилить для тренировки/чтобы показать можно было
спасибо.
985564
43 Кб, 500x500
#494 #985543
C# сейчас вообще актуален ? в вебе достаточно вакансий ?
а то постоянно на питоно-должности натыкаюсь не знаю по какому пути идти
985565990123
#495 #985564
>>985539
Ну ты даёшь. Легких путей не ищешь. лол
>>985541
анонимную имиджборду
сервис хостинга пикч, паст, %файл_нейм%
форум
CMS
#496 #985565
>>985543
А в чём проблема загуглить по твоему городу?
Я вот очень редко на питон натыкаюсь в вакансиях.
А вообще везде дохуя вакансий, изучить просто надо хоть что-то одно сперва
#497 #985643
Хочу выучить/улучшить знания самого языка, а не асп.нета. Что можно почитать, или что написать? В голову приходят только совсем хеллоуворлды уровня консольного блэкджека.
985648
#498 #985648
>>985643
пиши хеллоуворлды с применением бест практисес
#499 #985658
>>985530
А можно просто заюзать биндинг и магия все сама сделает. Но нет, пишем в Button1_click()
985665985827
#500 #985665
>>985658
Может он некрофил любитель винформс.
#502 #985695
>>985539
Всё ок, только оставляй минимум одну строку между атрибутами класса, используй String вместо string, юзай xml-комментарии(///) и замени публичный поля на свойства(в твоём случае уместней будет), алсо вообще почитай какой-нибудь кодстайл для C#(желательно от microsoft).
985789
#503 #985789
>>985695

> используй String вместо string


пиздец
985801
#504 #985801
>>985789
Why? Имя класса должно быть в Pascal case.
#505 #985827
>>985658
Куда ты уже разогнался? Парню надо что-то простенькое, да на коленке сделать.
#506 #986188
>>983398
А студия жопу не порвёт?
#507 #987089
Даров! Есть кто шарит в xamarin.forms.
Как изменить colorAccent из-за него я как понял у меня крч курсор розовый в Entry. Меняю значения в Style.xml так оно не компилит.
Нашел на просторах форумов как сделать курсор норм цвета, ток сам указатель курсора( когда в средину слова тыкаешь он появляется) все равно розового цвета.

да и вообще стоил ли учить xanarin или забить ?
Спасиб
82 Кб, 736x736
#508 #987972
Как отделасться от ощущения игрушечного скучного языка?
990125
#509 #990123
>>985543

ПХП - вот твой путь
#510 #990125
>>987972

Хацкель сделает тебя мужчиной.
Тред утонул или удален.
Это копия, сохраненная 9 июня 2017 года.

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

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