Донаты и на кофе ➜ t.me/win10twea... Эксклюзив для спонсоров ➜ / xpuct Если недоступна спонсорка ➜ Основной канал: / jailbreakvideo #цикл #foreach #СиШарп
Чтобы не заходить в дизайнер и не расставлять по порядку элементы в ручную, есть окно "Структура документа" Ctrl+Alt+T (Вид-Другие окна-Структура документа). Там можно как переименовывать элементы, переводить их на передний/задний план, видеть, что находится на определённой панели, так и расставлять их по нужному порядку.
Сначала скептически отнёсся к Вашим урокам, теперь начинает нравится. желаю единственного - чтобы жизнь заставила Вас столкнуться с тем, что опускаете, (как, например, многомерные массивы), соответственно изучить и начать использовать и возможно на канале появятся уроки по пропущенным темам для тех, кто в будущем придёт сюда.
Вы не поверите, в 19-ом видео (пока в обработке) Я как раз говорю о том, что break и continue нужно знать, хотя не могу придумать хороший пример. Также сегодня один человек пожелал Мне того же самого =) Чтобы async await не просто "паузить", а паузить с экономным отношением к памяти. Надеюсь, что доберёмся до сложных примеров 👍
Спасибо большое! На 0:42 уже поняла что это и зачем это. Вы классно объясняете, связывая с перевод с английского. Удачи в развитии канала и самосовершенствовании. Спасибо!
Христ, я тоже вставлю своих 5 копеек... Достаточно написать for, foreach или while, а затем нажать двойной Tab и будет счастье в виде заполненного кода (почти)... Также это действует для заполнения свойств (propfull + двойной Tab), для автоматических свойств (prop + двойной Tab), для конструктора (ctor + двойной Tab)... может есть еще, но пока не встречал других
А есть в вашем каталоге что то про Bitmap? как загрузить картинку в двумерный массив и как на ней найти фрагмент этой картинки, к примеру загрузить картинку как двумерный массив в буфер и на ней найти фрагмент вырезанный из этой же картинки и произвести по фрагменту действие, к примеру клик)))
@@XpucT Эх, думал есть что то такое))) я как раз бота пишу))) поиск по картинке хотел замутить, что бы имитировать не тыки мышкой по координатам а поиск по картинке)))
Привет, Хачатур. У меня есть вопрос: можно ли как-то ограничить работу цикла foreach? Допустим если мне нужно из листа, массива размером 40 данных, достать 20 данных, а потом другие 20?
label1.BackColor = Color.Aqua; label1.Location = new Point(150, 160); . Правильно ли я понял , что для того , чтобы сдвинуть лейб нужно прописать экземпляр класса поинт с заданными координатами ? А чтобы изменить цвет лейбла нужно просто написать класс Color и вызвать метод с нужным цветом ?
А возможно ли при использовании foreach исключить какой-либо элемент из заданного набора? Например, используется набор кнопок Controls.OfType, и нужно что бы, какую-то кнопку на форме не использовал. Ну или чтоб начинал со второго элемента или заканчивал предпоследним? Или только уже внутри цикла делать проверки,типа if (but!=Button1) {делает что-то с набором кнопок}?
Правильный ответ на данном этапе обучения - да, просто добавить if. Но на 20-м уроке научимся делать ещё круче с помощью LINQ. Но упаси Тебя, Андрей, бежать впереди паровоза и прыгать по видео, поверь, нахлебаешься =) До 20 урока Ты должен дойти зная всё то, что знаешь в предыдущих 19-ти 💪
Привет, недавно начал смотреть твои видео, очень нравится. Я делаю проект для работы. Вопрос такой, у меня очень много checkbox'ов и я хочу сделать так, чтобы те, которые я выбирал, записывали текст в файл, создавая его на рабочем столе. Вот мой код, но он записывает текст только того чебокса, который был выбран последним, не могу понять в чем проблема string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); foreach (CheckBox ch in Controls.OfType()) { if (ch.Checked) { File.WriteAllText(path + "\\Список Работ.txt", ch.Text); } }
const int n = 100; int[] nums = new int[n]; Random rand = new Random(); foreach (int num in nums) { nums[num] = rand.Next(n); } Привет, Хачатур. Подскажи, пожалуйста, почему такой foreach не работает? (для всех числе в массиве задаёт одно и тоже число). А если прописать: for (int i = 0; i < nums.Length; i++) { nums[i] = rand.Next(n); } то всё работает как надо.
Привет 🖐 Вот пример: metanit.com/sharp/tutorial/3.4.php Однако Я лично либо использую тернарные операции, либо лямбду. Хороший пример сделать сам не могу, потому что не пользуюсь ┐('~`;)┌ Хотя 1 раз использовал, когда нужно было передать что-то из одно формы в другую: Во второй форме: public string MyText { get; set; } В первой форме: Form2 f2 = new Form2(this) { MyText = text }; Но лучше обмениваться через классы.... Мда, хорошего примера нет =)
if и else Сделать ориентир, например, label. После того, как все проставлены, то label1.Text = "Снять галочки", else label1.Text = "Поставить галочки" if label1.Text = "Поставить"... else ...
блин)) у меня такая тупенькая прога: char[] a = "Zdarova otec".ToCharArray(); private void button1_Click(object sender, EventArgs e) { int i = 0; foreach (char c in a) { if (i < a.Length - 1) i++; a[i] = 'z'; } label1.Text = a.ToString(); } почему она выводит "System.Char[]" а не zzzzzzzzz?
А как сделать активными кнопочки сверху( поставить контрол по центру, например ) У меня они серые и даже при выделении контрола не становятся активными
Правой кнопкой по контролу ➜ Переместить на передний план Выравнивание доступно, если просто нажмёте левой кнопкой по контролу ➜ вверху будет выравнивание.
Класс, всё вроде усвоил. Правда пример с checkBox-сами в panel не получилось сделать, вроде написал всё верно, сверил, сама Visual никаких ошибок не выдала, но при нажатии на кнопку ничего не происходит. Посмотрел на Debug, она заходит на foreach, смотрит на panel1.и т.д. но почему-то посмотрев, она просто пропускает его.
Необязательное указание на контрол или форму. К примеру, если нужно поменять BackColor у label1 и у Form1. label1.BackColor = ... (для label) this.BackColor = ... (для формы) Таким образом увидим, что this подсвечивается так, что можно (нужно) стереть. Это такой же мусор, как указание private. Можешь писать и не писать, но он есть. this также.
@@XpucT Я бы не назвал это мусором) this нужен, чтобы обратиться к классу в котором мы сейчас находимся, например, чтобы решить проблему неоднозначности именования переменных. У тебя в классе есть поле data, и в конструкторе класса в параметрах тоже есть data, и чтобы передать ту самую дату в класс при создании экземпляра, нужно написать в теле конструктора this.data = data; Где this.data это обращение к полю класса, а data обращение к параметру конструктора. Иначе компилятор не поймет какую именно переменную data мы имели ввиду. Или еще можно использовать для передачи объекта текущего класса в метод или массив. Например, есть метод который в параметрах принимает объекты текущего класса, если нам надо изнутри передать экземпляр, можно написать SomeMethod(this), или если хотим передать в массив someList.Add(this). А еще можно использовать this для перегрузки конструктора, когда есть 2 и более конструкторов, которые частично принимают одинаковые параметры. Что-то вроде ctor(int a, int b), ctor(int a, int b, int c) : this(a,b), по аналогии как с ключевым словом base.
Чтобы не заходить в дизайнер и не расставлять по порядку элементы в ручную, есть окно "Структура документа" Ctrl+Alt+T (Вид-Другие окна-Структура документа). Там можно как переименовывать элементы, переводить их на передний/задний план, видеть, что находится на определённой панели, так и расставлять их по нужному порядку.
Это просто шикарно 👏
Закрепил коммент 👍
Вот это уроки! Вот это реальное обучение.
Оу май, используя aray,foreach и char - можно делать диалоги в играх)
Спасибо, благодаря тебе карабкаюсь вверх по лестнице программирования, спотыкаюсь, потею, ругаюсь, посылаю всё к чёрту но карабкаюсь.
Сначала скептически отнёсся к Вашим урокам, теперь начинает нравится. желаю единственного - чтобы жизнь заставила Вас столкнуться с тем, что опускаете, (как, например, многомерные массивы), соответственно изучить и начать использовать и возможно на канале появятся уроки по пропущенным темам для тех, кто в будущем придёт сюда.
Вы не поверите, в 19-ом видео (пока в обработке) Я как раз говорю о том, что break и continue нужно знать, хотя не могу придумать хороший пример. Также сегодня один человек пожелал Мне того же самого =) Чтобы async await не просто "паузить", а паузить с экономным отношением к памяти. Надеюсь, что доберёмся до сложных примеров 👍
Очень доступно объясняете! Спасибо! Пошел применять)
Божечки, какой же прекрасный цикл, я себе голову ломал с вайлом и циклом фор, в итоге foreach мне идеально подходит, спасибо большое, лайк👍🏻
Спасибо большое
Спасибо большое! На 0:42 уже поняла что это и зачем это. Вы классно объясняете, связывая с перевод с английского. Удачи в развитии канала и самосовершенствовании. Спасибо!
Очень круто, все очень понятно особенно на примерах где и как можно использовать, никто не покажет как это делать кроме как XpucT )
Христ, я тоже вставлю своих 5 копеек... Достаточно написать for, foreach или while, а затем нажать двойной Tab и будет счастье в виде заполненного кода (почти)... Также это действует для заполнения свойств (propfull + двойной Tab), для автоматических свойств (prop + двойной Tab), для конструктора (ctor + двойной Tab)... может есть еще, но пока не встречал других
спасибо
Привет ув.Хачатур
Да, крутой цикл foreach ()
Уроки класс! Но плохо видно экран. Хотелось бы чтобы изображение кода было крупнее или ближе.
Спасибо!
Христ очень хотелось бы увидеть урок про Сериализация-десериализация, лайк поставил)
Спасибо!
Можно копировать элементы проще, shift+лкм на элемент (выделить его) и зажимая ctrl перетаскивать в новое место (так он создаёт новый элемент)
Любая строка может быть массивом например
string line = "XpucT снимает крутые видео";
foreach (char item in line)
{
Console.WriteLine(item);
}
а зачем в столбик
Хачатур расскажи как сохранять действия которые сделал в программе пожалуйста))
Очень скоро до этого дойдём 👍
А есть в вашем каталоге что то про Bitmap? как загрузить картинку в двумерный массив и как на ней найти фрагмент этой картинки, к примеру загрузить картинку как двумерный массив в буфер и на ней найти фрагмент вырезанный из этой же картинки и произвести по фрагменту действие, к примеру клик)))
Такого видео нет O_O
@@XpucT Эх, думал есть что то такое))) я как раз бота пишу))) поиск по картинке хотел замутить, что бы имитировать не тыки мышкой по координатам а поиск по картинке)))
foreach используется как в Python только в Python for(a in b){} идет перебор из оной переменной в другую.
Привет, Хачатур. У меня есть вопрос: можно ли как-то ограничить работу цикла foreach? Допустим если мне нужно из листа, массива размером 40 данных, достать 20 данных, а потом другие 20?
Привет 🖐
Всё можно контролировать с помощью if внутри foreach.
Всё зависит от ситуации.
Здравствуйте! Хотел бы заранее узнать, будут ли уроки по WPF? А также MVVM, его реализации и фишках? (Messenger и прочее).Возможно другие паттерны
Добрый день.
Если будут по WPF, то позже. Он слишком сырой для серьёзных проектов. Много времени отнимет на реализацию идей.
@@XpucT разве инструментарий WinForms может дать такие же возможности, как WPF(UWP)? Те же триггеры
Ну все побежал подписывать контроллы на метод forechем. А кроме panel можно как-нибудь получить коллекцию нужных контроллов?
LINQ, но это через 22 урока после этого. Пока не спеши и иди последовательно иначе будет каша, поверь ;)
@@XpucT Учту, спасибо)
label1.BackColor = Color.Aqua;
label1.Location = new Point(150, 160); . Правильно ли я понял , что для того , чтобы сдвинуть лейб нужно прописать экземпляр класса поинт с заданными координатами ? А чтобы изменить цвет лейбла нужно просто написать класс Color и вызвать метод с нужным цветом ?
Нет-нет, не нужно создавать экземпляры, если контрол (элемент управления) уже существует.
Достаточно просто:
label1.Location = new Point(0, 0);
и т.д.
@@XpucT всё , понял
В натуре, Ставим лайм)
А возможно ли при использовании foreach исключить какой-либо элемент из заданного набора? Например, используется набор кнопок Controls.OfType, и нужно что бы, какую-то кнопку на форме не использовал. Ну или чтоб начинал со второго элемента или заканчивал предпоследним? Или только уже внутри цикла делать проверки,типа if (but!=Button1) {делает что-то с набором кнопок}?
Правильный ответ на данном этапе обучения - да, просто добавить if.
Но на 20-м уроке научимся делать ещё круче с помощью LINQ.
Но упаси Тебя, Андрей, бежать впереди паровоза и прыгать по видео, поверь, нахлебаешься =)
До 20 урока Ты должен дойти зная всё то, что знаешь в предыдущих 19-ти 💪
@@XpucT ну что ж, дойдём и до 20 урока =) Спасибо за уроки и за ответы в комментариях. Всё очень интересно и понятно. 👍
Привет, недавно начал смотреть твои видео, очень нравится.
Я делаю проект для работы.
Вопрос такой, у меня очень много checkbox'ов и я хочу сделать так, чтобы те, которые я выбирал, записывали текст в файл, создавая его на рабочем столе.
Вот мой код, но он записывает текст только того чебокса, который был выбран последним, не могу понять в чем проблема
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
foreach (CheckBox ch in Controls.OfType())
{
if (ch.Checked)
{
File.WriteAllText(path + "\\Список Работ.txt", ch.Text);
}
}
const int n = 100;
int[] nums = new int[n];
Random rand = new Random();
foreach (int num in nums)
{
nums[num] = rand.Next(n);
}
Привет, Хачатур. Подскажи, пожалуйста, почему такой foreach не работает? (для всех числе в массиве задаёт одно и тоже число).
А если прописать:
for (int i = 0; i < nums.Length; i++)
{
nums[i] = rand.Next(n);
}
то всё работает как надо.
Привет 🖐
Не понял вопроса, потому что и один и другой код рабочие.
Мне кажется Ты ожидаешь просто что-то другое =))
foreach (var item in pas)
Можно ли как-то заставить цикл воспринимать пароли?
А почему нет?
@@XpucT визуал ругается говорит что такой цикл переменную не понимает
@@m00dystyle значит pass не является списком или массивом.
привет Христ, что значит { get; set ;} ?
часто вижу но не понимаю что это
Привет 🖐
Вот пример:
metanit.com/sharp/tutorial/3.4.php
Однако Я лично либо использую тернарные операции, либо лямбду.
Хороший пример сделать сам не могу, потому что не пользуюсь ┐('~`;)┌
Хотя 1 раз использовал, когда нужно было передать что-то из одно формы в другую:
Во второй форме: public string MyText { get; set; }
В первой форме:
Form2 f2 = new Form2(this)
{
MyText = text
};
Но лучше обмениваться через классы.... Мда, хорошего примера нет =)
@@XpucT спасибо)
А как вторым кликом по той же кнопке разчекать все чекбоксы?
if и else
Сделать ориентир, например, label.
После того, как все проставлены, то label1.Text = "Снять галочки", else label1.Text = "Поставить галочки"
if label1.Text = "Поставить"... else ...
блин)) у меня такая тупенькая прога:
char[] a = "Zdarova otec".ToCharArray();
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
foreach (char c in a)
{
if (i < a.Length - 1)
i++;
a[i] = 'z';
}
label1.Text = a.ToString();
}
почему она выводит "System.Char[]" а не zzzzzzzzz?
label1.Text = new string(a);
@@XpucT спасибо! я прочитал на метаните про new, но слабо понял, дойду в твоем курсе до него)
Ну эт для совсем чайников. А куда делись IEnumerable, IEnumerator, yeald return, Reflection, yeald break, Pattern Iterator, и всё такое?
А как сделать активными кнопочки сверху( поставить контрол по центру, например ) У меня они серые и даже при выделении контрола не становятся активными
Правой кнопкой по контролу ➜ Переместить на передний план
Выравнивание доступно, если просто нажмёте левой кнопкой по контролу ➜ вверху будет выравнивание.
А как же добавить элемент в массив? И удалить элемент из массива?
А как же выделить массив в куче. Или в C# этого нет?
Для этого нужно дождаться List
Вынуть или добавить проще в "список", чем в "массив".
Об этом, опять же, позже.
Пытался к полям в меню так обратиться ничего не срабатывает. foreach (var menu in menuStrip1.Controls.OfType())
Точно нигде ничего не напутано?
stackoverflow.com/questions/15380730/foreach-every-subitem-in-a-menustrip
foreach, Удобно, но не выгодно..... если работаем на большие дата стракты, лучше простого for только низкоуровневые языки.
Класс, всё вроде усвоил. Правда пример с checkBox-сами в panel не получилось сделать, вроде написал всё верно, сверил, сама Visual никаких ошибок не выдала, но при нажатии на кнопку ничего не происходит. Посмотрел на Debug, она заходит на foreach, смотрит на panel1.и т.д. но почему-то посмотрев, она просто пропускает его.
Что-то не то делаешь =)
Кто может по простому объяснить что такое this?
Необязательное указание на контрол или форму.
К примеру, если нужно поменять BackColor у label1 и у Form1.
label1.BackColor = ... (для label)
this.BackColor = ... (для формы)
Таким образом увидим, что this подсвечивается так, что можно (нужно) стереть.
Это такой же мусор, как указание private. Можешь писать и не писать, но он есть. this также.
@@XpucT Огромное спасибо! Наконец понял)))
this. это означает что объект принадлежит к классу
@@XpucT Я бы не назвал это мусором) this нужен, чтобы обратиться к классу в котором мы сейчас находимся, например, чтобы решить проблему неоднозначности именования переменных. У тебя в классе есть поле data, и в конструкторе класса в параметрах тоже есть data, и чтобы передать ту самую дату в класс при создании экземпляра, нужно написать в теле конструктора this.data = data; Где this.data это обращение к полю класса, а data обращение к параметру конструктора. Иначе компилятор не поймет какую именно переменную data мы имели ввиду. Или еще можно использовать для передачи объекта текущего класса в метод или массив. Например, есть метод который в параметрах принимает объекты текущего класса, если нам надо изнутри передать экземпляр, можно написать SomeMethod(this), или если хотим передать в массив someList.Add(this). А еще можно использовать this для перегрузки конструктора, когда есть 2 и более конструкторов, которые частично принимают одинаковые параметры. Что-то вроде ctor(int a, int b), ctor(int a, int b, int c) : this(a,b), по аналогии как с ключевым словом base.