C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Сижу, любуюсь на VisualStudio 2017. Как оказалось, не всё, что писали про него - правда. Так
работает, а указанная на blogs.msdn.microsoft.com конструкция out * не работает:
Может вообще отказались от такого синтаксиса, а может пока отложили "на потом". Локальные функции работают:
Лично мне больше всего нравится:
После интерполяции строк (введённой в C# 6) это будет моим любимым новшеством - срочно во всех программах выкину "==null" Исправлено 1 раз(а). Последнее : S-type, 11.03.17 18:11 |
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Вот чего я не понял после установки VisualStudio 2017 - почему не работает конструкция
Понятно, что если через NuGet установить System.ValueTuple, то она будет работать. Но, в C# 7 она ведь должна была быть "встроенной", а не "скачиваемой". Или, я что то не так понимаю? В нете много описаний "new in c# 7" от прошлого года. Попробовал поискать на сайте MS официальное описание - что же нового в языке C# 7 (в VS 2017), и - не нашёл. Где можно взять официальный список новшеств в C# 7? |
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Вот, например, docs.microsoft.com . Это официально? Написано:
Цитата: Обратил внимание, что tuple - с маленькой буквы. Проверил, так - работает:
А так:
выдаёт ошибку. Т.е. Tuple - это класс, а tuple - это ключевое слово для создания пользовательского типа данных (аналогично class или struct). Но, поскольку кортеж создаётся с помощью (), это скорее больше похоже на массив, создаваемый []. Я правильно понимаю? Исправлено 1 раз(а). Последнее : S-type, 11.03.17 20:47 |
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Проверил - работает:
И даже так то же работает:
|
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
При запуске VS отображаются новости. Во вчерашних новостях есть blogs.msdn.microsoft.com Там сказано:
Цитата: translate.google.com переводит как Цитата: Смысл выделенного курсивом не улавливается, явно как то косо переведено. То, что можно установить через NuGet пакет System.ValueTuple, это понятно. А какая альтернатива - если пакет не устанавливать? |
Re: C# 7 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
C# проект имеет target framework - можно указать что это будет 4.6.2, или к примеру 4.0. А там никаких ValueTuple<...> нет, но рантайм то у всей линейки 4* фреймворков одинаков - т.е. принципиальных препятствий к тому чтобы это работало нет. Поэтому и пишут что вместо установки соответствующей версии SDK и самого целевого фреймворка (а это значит что и у клиента потребуется устанавливать соответствующую версию) можно просто добавить в проект ссылку на библиотеку с реализацией этого типа.
Перевод совершенно правильный. Либо ставишь таргетинг на "новую" версию и тогда не надо ничего добавлять, там тип уже "встроен". Если же ставишь таргетинг на старую - то надо добавить пакет с новыми типами. ------------------ WBR, Igor |
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Т.е. если я укажу в свойствах проекта версию 4.6.2, то устанавливать через NuGet пакет System.ValueTuple уже не нужно?
|
Re: C# 7 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Насколько я в курсе, System.ValueTuple НЕ входит в состав фреймворка версии 4.6.2 (при том пишут что сама его dll валяется в папке компилятора 2017 студии). Вероятно он будет добавлен во фреймворк в будущих версиях, а пока нужно качать отдельным пакетом.
------------------ WBR, Igor |
Re: C# 7 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Tuple.Create() создаёт кортеж ссылочного типа (class). А литерал (список) создаёт кортеж значимого типа (struct).
Исправлено 1 раз(а). Последнее : S-type, 18.04.17 10:13 |
© 2000-2024 Fox Club  |