.NET und C# ohne Web?
Ты там в резЮме вообще не пиши эти смешные буквы В1 и В2. Пусть сами выясняют твой уровень по телефону. Просто тупо пиши "знаю немецкий". И да, убери про знание таджикского.
Wirklich?.. Nein. WIRKLICH??
(чего картинки из буфера не вставляются? во время редактирования вставляются, а после отправки поста - исчезают)
Как по-мне, кортежи в первую очередь с точки зрения читабельности кода не самая удобная штука. out-параметры гораздо удобнее. Хотя еще удобнее было бы просто сделать возврат класса/интерфейса с одними геттерами :)
Почему не удобно? Даже в версии 7.3 языка уже можно давать осмысленные имена элементам кортежа. В примере ниже при выводе в консоль res.sum и res.count подсвечиваются IntelliSense (тут и код нормально не вставляется). Хреново видно, т.к. разметки для кода нет, но и так понятно - возврат из метода кортежа с осмысленными названиями полей, результат возврата - тоже кортеж с осмысленными названиями, интеллисенс сразу всё подхватывает и подсвечивает. Возиться с предварительным объявлением аут-параметров не надо, классы объявлять не надо. Вобщем, очень похоже на анонимные типы, только тут неявный кортеж (без явного объявления Tuple). В теле метода специально назвал переменные с единичкой в конце, чтобы показать, что имена возвращаемых полей кортежа определяются в возврате метода.
public static (int sum, int count) SumNumbers(IEnumerable<int> sequence) { int sum1 = 0; int count1 = 0; foreach (var value in sequence) { sum1 += value; count1++; } return (sum1, count1); } static void Main(string[] args) { var res = SumNumbers(Enumerable.Range(1, 5)); Console.WriteLine($"Sum: {res.sum}, Count: {res.count}"); }
Но это ведь всё изучить надо.
-----
Что именно надо изучатъ?
Что там есть такого нового, что не входит в парадигму ООП и что не было имплементированно в других языках?
Ну наберется там с 5-10 страниц описания новинок. И это должно стоить того чтобы говорить - "там столько надо учить-учить"?
Или может надо было в "школе" научится эффективно (само)обучатся?
заменяет out-параметры?
-----
А то, что наличие оут-параметров нарушало школьное определение функции тебе не мешало?
В вопросе возврата чего-то из функции меня больше интересует где будет размещен результат - куча? стек? - область его видимости и время существования. А вернуть можно хоть структуру, хоть массив объектов - с этим проблем не было со времен Пуре Си...
я Вам уже говорил когда-то: рассылайтесь веерно и не ждите окончания обучения, за ними начнутся другие курсы, а потом ещё одни
Вы когда начнёте работать, увидите, каких дятлов тут иногда за кодеров держат и будет обидно за упущенное время
Да вроде как Я такого не говорил
А я имел в виду именно это - было одно, стало другое . А лучше или хуже out параметры это уже вопрос конкретного использования, причем не имеющий никакой связи с тем что я хотел сказать.
Ну а любители кортежей могут попробовать написать получше хотя бы это
if(int.TryParse(strData, out int age)) { Console.WriteLine($"Age:{age}"); }
А зачем тут кортеж? Я бы не булеан возвращал а прочитанный инт. Не можешь прочитать - кидай эксепшен.
Именно так ведет себя int.Parse (), а int.TryParse() как раз не должен кидать исключений (как и любая другая функция, имя которой начинается с Try)
Но с кортежем это не будет выглядеть лучше :)