КЛЮЧЕВОЕ СЛОВО REF C# | C# ref что это и для чего нужно | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 43

preview_player
Показать описание
В этом уроке мы изучим ключевое слово ref в языке программирования C#, выясним для чего оно нужно, как используется, как ref работает для ссылочных типов и для значимых типов, а так же последние нововведения относительно модификатора ref в последних версиях языка программирования C#.

➡️ Мой курс C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ на Udemy

✅Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4

#сишарп #simplecode #урокипрограммирования #ref
Рекомендации по теме
Комментарии
Автор

Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
✅BTC кошелек:

SimpleCodeIT
Автор

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

capri_xj
Автор

Ураа! Новый урок! Спс от души просто!!! Боялся что ты забросишь уроки.

thetraveler
Автор

Три раза(от начала до конца) пересмотрел этот урок, только потом начал понемногу понимать.

kostya_engineer
Автор

Благодарность огромная, учусь по твоим урокам, и другим советую твой канал, который лучший на ютубе по языку с#👍

mikkimorfin
Автор

Отличные уроки, спасибо! Я в C# хоть и не новичок, но тоже очень полезно пересмотреть. Очень часто наталкиваюсь на что-то новое о существовании которого и не догадывался, а делал раньше по старинке.

fader
Автор

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

kachgamer
Автор

Ты не представляешь, как ты мне помог разобраться во многих темах, большое тебе человеческое спасибо!

ТимофейСидоренко-ие
Автор

Сергей, огромное спасибо! Двигаюсь дальше!

DGoose
Автор

Огромнейшее спасибо! Такую сложную тему так легко раскидать!
Это талант! Огромное спасибо! Мира вашему дому.

rm
Автор

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

KorotkovaMarina
Автор

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

НикитаЛазовский-эв
Автор

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

andrewwhk
Автор

Один из лучших курсов! Спасибо, что делитесь знаниями!

Anton-lupl
Автор

Спасибо, Сергей!
Уф....Ну что могу сказать... Два дня с перерывами ломал голову. После завершения, понял что хоть я и указываю слово fer, но абсолютно его не использую. А так все работает. Понимаю, что не плохо было бы предусмотреть некоторые особенности (например при получении массива с 0 элементов, программа выдаст ошибку, тк попытается убрать еще один элемент в массиве без элементов), но в контексте моей программы, это невозможно.

static int[] Resize (ref int[] FirstArr)
{
Console.WriteLine(" Массив какого размера вам нужен? Введите число элементов :");
int YourElements =
int[] FinalArr = new int[YourElements];
for (int i = 0; i < FinalArr.Length; i++)
{
if (i < FirstArr.Length)
FinalArr[i] = FirstArr[i];
else
FinalArr[i] = 0;
}
return FinalArr;
}
static int[] Add (ref int[] FirstArr)
{
Console.WriteLine(" 1 - добавить первый элемент\n 2 - добавить элемент по индексу\n 3 - добавить последний элемент");
int[] FinalArr = new int[FirstArr.Length+1];
int YourChoiсe2 =
if (YourChoiсe2==1)
{
Console.WriteLine(" Новый элемент добавлен в начало массива, какое значение ему присвоить?");
int AddElem =

for (int i = 0; i < FinalArr.Length; i++)
if (i < FirstArr.Length)
FinalArr[i+1] = FirstArr[i];
FinalArr[0] = AddElem;
}
if (YourChoiсe2==2)
{
Console.WriteLine(" Элемент с каим индексом требуется добавить?");
int IndexOf =
Console.WriteLine(" Какое значение требуется присвоить этоиу элементу?");
int AddElem =
for (int i = 0; i < FinalArr.Length; i++)
{
if (i < FirstArr.Length)
FinalArr[i] = FirstArr[i];
}
FinalArr[IndexOf] = AddElem;
}
if (YourChoiсe2==3)
{
Console.WriteLine(" Новый элемент добавлен в конец массива, какое значение ему присвоить?");
int AddElem =
for (int i = 0; i < FinalArr.Length; i++)
{
if (i < FirstArr.Length)
FinalArr[i] = FirstArr[i];
}
FinalArr[^1] = AddElem;
}
return FinalArr;
}
static int[] Delete(ref int[] FirstArr)
{
Console.WriteLine(" 1 - удалить первый элемент\n 2 - удалить элемент по индексу\n 3 - удалить последний элемент");
int[] FinalArr = new int[FirstArr.Length - 1];
int YourChoiсe2 =
if (YourChoiсe2 == 1)
{
Console.WriteLine(" Первый элемент массива удален");
for (int i = 0; i < FinalArr.Length; i++)
FinalArr[i] = FirstArr[i+1];
}
if (YourChoiсe2 == 2)
{
Console.WriteLine(" Элемент с каим индексом требуется удалить?");
int IndexOf =
for (int i = 0; i < FinalArr.Length; i++)
{
if (i != FirstArr.Length)
FinalArr[i] = FirstArr[i];
}
}
if (YourChoiсe2 == 3)
{
Console.WriteLine(" Последний элемент массива удален");
for (int i = 0; i < FinalArr.Length; i++)
{
FinalArr[i] = FirstArr[i];
}
}
return FinalArr;
}
static void Main(string[] args)
{
int[] FirstArr = { 1, 2, 3 };
int[] FinalArr = new int[0];
Console.WriteLine(" Создан массив { 1 2 3}");
Console.WriteLine(" Вы можете выбрать одно из трех действий");
Console.WriteLine(" 1 - изменить размер массива\n 2 - добавить элемент в массив\n 3 - удалиь элемент массива");
int youChoise0 =
if (youChoise0 == 1)
FinalArr = Resize (ref FirstArr);
if (youChoise0 == 2)
FinalArr = Add (ref FirstArr);
if (youChoise0 == 3)
FinalArr = Delete (ref FirstArr);
Console.WriteLine("Ваш массив :" );
for (int i = 0; i < FinalArr.Length; i++)
{
if (i==0)Console.Write("{");
Console.Write(FinalArr[i] + " ");
if (i ==
}
Console.WriteLine();
Console.WriteLine("Размер массива " + FinalArr.Length);
Console.WriteLine("Сумма элементов в массиве " + FinalArr.Sum());

artefakt
Автор

Как много слов, как много информации . Но под конец урока всё таки смог осознать принцип работы этого ref.Спасибо за урок !)

ПавелБойко-ьд
Автор

Сергей, спасибо вам за урок! Сделайте пожалуйста следующий выпуск про использование выходного параметра out.

ib
Автор

Спппасибо дяде Сереже за достойный контент

elfinroom
Автор

16:35 - Недавно столкнулся с такой проблемой по незнанию. У меня это прям головную боль вызвало, почему передавая объект класса в метод тот на выходе ничего не менял. Оказалось ровно то, что Вы объяснили в видео, то есть нужно указывать ref в подобных ситуациях даже для ссылочных данных

RUSlTUZ
Автор

Я только начал своё изучение С#
Спасибо за понятные и чёткие уроки. Надеюсь ты не забросиш это дело и доведёш всё до конца👍💪💪

emsigaming