C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Наткнулся на статью habrahabr.ru Это же не 1-апрельская шутка?
|
Re: C# 7 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Нет, не шутка. Количество г*на планомерно возрастает - думаю к 10-12 версии будет большой бум
------------------ WBR, Igor |
Re: C# 7 | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Почитал ссылку - охренел реально. Не, я знал, что количество "планомерно возрастает", но после прочтения такое ощущение есть, что уже не планомерно, а спонтанно и необратимо. Блин, пора из разработчиков уходить, чувствую. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Если это не шутка - давайте "по пунктам".
1. Бинарные литералы. С одной стороны, лично мне они не нужны. С другой стороны - кому они мешают? 2. Локальные функции. В PL/SQL они есть, и ни коим образом не мешают. 3. Кортежи (Tuples) Т.е. вместо того, что бы явно создавать структуру, заполнять её и потом возвращать через return, идёт неявное создание структуры - просто берём переменные в скобки. По мне - хорошее решение. Чем то sys_refcursor из Oracl-а напоминает (правда, там recordset, а тут всего лишь record/structure). Всегда коробило создавать out параметры в функциях, и напрягало создавать структуры. Так что я - целиком "за". 4. Новый вывод переменных в строке Это и не новшество, есть в 6# - активно использую. 5. Сопоставление с образцом (Pattern matching) Цитата: Вот тут ни фига не понял. Что такое "Сопоставление"? Что здесь "образец"? Какое значение присваивается переменной i? 6. Условия и использование объектов в переключателях Понятно, как это работает, но не понятно - где это с пользой использовать. Вроде как "раздвигают границы". Не понятно - может ли быть от этого вред. 7. Возвращение объектов по ссылке То же, как с предыдущим пунктом - на первый взгляд вреда не видно, как и пользы. Коллеги - какое у Вас мнение? Если можно - по пунктам, и аргументированно. Да, кстати VS2015 update2 rus не смог найти на сайте MS. Наверное, ещё есть только английский? Или, плохо искал? Исправлено 1 раз(а). Последнее : S-type, 08.04.16 20:57 |
Re: C# 7 | |
---|---|
Рома Сообщений: 1079 Дата регистрации: 06.06.2001 |
1. Бинарные литералы. С одной стороны, лично мне они не нужны. С другой стороны - кому они мешают?
Иногда могут быть полезны (например при описании enum c [Flags]) 2. Локальные функции. В PL/SQL они есть, и ни коим образом не мешают. На фиг не надо. Есть уже delegate {}, () => {} или private методы тоже никто не отменял. 3. Кортежи (Tuples) Для возврата пары значений может и подойдет. А если представить передачу в виде параметра, то сигнатура метода будет из кучи вложенных скобок состоять (список параметров в списке параметров) - читать та еще радость. 5. Сопоставление с образцом (Pattern matching)
Эквивалентно
6. Условия и использование объектов в переключателях
Вреда никакого не вижу. Вместо
Пишем
switch просто расширили для поддержки разных типов образцов, а не только литералов как раньше. В видео это еще сравнивают с последовательностью catch блоков Так же, как исключение сопоставляется по типу в catch блоке, так же и switch сопоставляет каждый case
7. Возвращение объектов по ссылке Здесь довели до ума поддержку ссылочных типов в C# - раньше можно было использовать только параметры ссылочного типа (ref/out), теперь можно еще локальные переменные делать и возвращать ссылку на значение. Это не для ежедневного использования, конечно, но в некоторых случаях позволит избежать использования указателей (что тянет за собой необходимость unsafe контекста) с сохранением той же производительности.
У меня Update1 уже стоял обновил с помощью go.microsoft.com Правда, у меня английская версия, но думаю, что докачает все что надо и для русской. |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Спасибо, теперь "Сопоставление с образцом (Pattern matching)" и "Условия и использование объектов в переключателях" стали понятны.
Я правильно понял, что Вы, Роман, плюсов видите больше - чем минусов? Спасибо за загрузчик - Исправлено 2 раз(а). Последнее : S-type, 09.04.16 00:35 |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Раньше это был сахар Язык называется C#. На сколько помню, # этот музыкальный знак называется диез, означает "повышение ноты на пол тона". Но, с точки зрения разработчиков языка это не диез, а два знака плюс, впихнутых в одну клеточку. Извратили смысл знака, извратили язык С++, теперь потихоньку извращают оригинальный C#. Причём, действуют гуманно - не сразу кошке весь хвост отрезают, а каждый год по сантиметру. В музыкальных терминах - повышают от версии к версии тон на несколько центов. И, судя по всему, их уже не остановить... Вопрос - чем это закончится? C# будет содержать все возможные синтаксические конструкции и концепции из всех других языков? И у программистов начнётся лопаться голова... Шутка. Если серьёзно - IMHO, идёт движение в нужном направлении. |
Re: C# 7 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это то как раз мелочи. Лично мне, например, гораздо более опасными кажутся восьмеричные константы. Там нету явного символа-префикса, а нолик - ну мало ли какой индус решит "для красоты" написать 0123 вместо просто 123 А зачем? В чём смысл то? Если есть просто методы (которые можно и не делать public) и есть в конце концов лямбды да просто анонимные методы. Это как прикручивать к автомобилю пятое колесо Tuple<...> и так уже существуют - это лишь буэ-шный нетипизированный синтаксис их описания. Во-первых это нужно достаточно нечасто (если у тебя сплошь и рядом методы возвращают по 2-3-10 значений и это НЕ структура, то явно надо в консерватории чего-то менять). Во-вторых я считаю что всегда лучше ЯВНО описать в коде нечто, чем поручать делать это описание компилятору - который сделает "как всегда", и потом ты с этим будешь мучится 5 версий пока не докрутят все недочёты (как, например, с теми же автоматическими свойствами - у него же ЕСТЬ настоящее поле, но доступа к нему - шишь получишь. Да и логику работы сеттера/геттера никак не дополнить, не говоря уж о том чтобы изменить). Сложно сказать для чего это практически может быть полезно... Просто есть такая возможность в IL, а в C# оно не было доступно. По поводу общего развития... Я не могу особо рассуждать по поводу с++, но лично мне кажется что это как раз таки вышел "извращённый" си. Если просто ввести понятия объектов/классов ещё куда ни шло, то вся эта хрень с шаблонами, кучей разных операций приведения типов, множественным наследованием... В общем то что должно было упростить написание ПО в итоге приводит к тому что получается адский нечитаемый код - к сожалению C# движется туда же. ------------------ WBR, Igor |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Т.е. в итоге, особых претензий типа "так делать вредно" - нет.
|
Re: C# 7 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
В любом более-менее развитом языке существует 100500 способов сделать г*но, и от того что добавится ещё пара десятков, особо ничего не поменяется. А писать красиво вполне себе можно и НЕ используя 90% этих примочек. Вообще обычно в серьёзных конторах существуют свои "соглашения и стандарты" - они как раз и направлены на то чтобы малоопытные сотрудники не делали каку ------------------ WBR, Igor |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Поставил Update 2, полез читать www.visualstudio.com про новшества. Добавили фишку - можно выделить выражение (и даже блок кода), вызвать C# Interactive (клавишами Ctr+E, E или в контекстном меню "Выполнять в интерактивном режиме") - и увидеть результат вычисления выражения. При этом "Интерактивный C#" - был добавлен ещё в Update 1!
Как я скучал по окошку Commands. Иногда нужно быстро что то посчитать, а набрать ?2*2 не в чем А тут - вот оно, счастье! Жизнь становится интереснее. Там даже #cls есть. |
Re: C# 7 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Макросы еще не добавили в си?
|
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
#load "myScriptContext.csx" |
Re: C# 7 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
И правда, что-то похожее.
blogs.msdn.microsoft.com |
C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Открыл VS, почитал новости:
blogs.msdn.microsoft.com Не понял про Tuples. В примере
С какой стороны данные, а с какой имена полей? Как правильно:
И, с Deconstruction не понятно. Есть пример:
Но, откуда взялся GetPoint? Он генерируется в c# как то "автоматом", или его надо самому определять, что то вроде:
Исправлено 3 раз(а). Последнее : S-type, 29.08.16 10:21 |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
В примере к More expression bodied members сказано:
Что это за синтаксис? Как его понимать? Коллеги, есть какие то мысли по этому поводу? |
Re: C# 7 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Хороший такой синтаксис ) Например:
- вот свойство Name, символьное - если из него читают (get) следовательно ( => ) вернуть names[id] (элемент id массива names обьекта, наверное) - если в него записывают (set), то тоже самое, но записать в элемент массива |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Т.е.
это просто иная запись для
Так? Просто, не понятно - какая от этого выгода? Судя по всему - ни какой. Исправлено 1 раз(а). Последнее : S-type, 01.09.16 13:45 |
Re: C# 7 | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ну как же, разраба на собеседовании при приёме на работу чмырить. Того который тупо кодит, вместо того чтобы за всякой ------------------ WBR, Igor |
Re: C# 7 | |
---|---|
S-type Автор Сообщений: 2969 Дата регистрации: 24.04.2004 |
Это точно. Был как то в одной конторе, а мне вопрос задают "какие новшества есть в Oracle 12"? Не знаю, говорю, у нас в банке 11-й, им и пользуемся - за глаза хватает. Тут мне начали объяснять, что "настоящий разработчик должен жить новшествами, болеть, читать, быть в курсе...". Не стал спорить, попрощался и ушёл. |
© 2000-2024 Fox Club  |