У меня — не пашет. Создал проект в 2017, и 2015-ая отвергает ПМ. Компилирование приводит к ошибкам. Попытка вручную установить LangVersion в проекте — сообщает invalid option '7' for /langversion.
Впрочем, сегодня с утра создал пустой ConsoleApp в 2017. Попытался его открыть в 2015 и получил серию крешей раза три. Пошаманил с файлами проектов. Вроде начало открываться. Но теперь нет крешей если повторить процедуру с самого начала и без шаманств... Жесть какая-то.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>>У меня — не пашет. Создал проект в 2017, и VD>У меня 2017–й не стоит.
Хочу как у тебя.
VD>А апдэйты на 2015–й Студии стоят?
2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, fddima, Вы писали:
VD>>У меня 2017–й не стоит. F> Хочу как у тебя.
Собственно, если кто не верит, вот список установленного отфильтрованный по "Vis":
F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
у меня все как часы работает. Просто я с дуру начал юзать 7-й шарп, и только потом понял, что это аномалия. А вообще я не понимаю как люди без ПМ мучались все это время. Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.
Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, fddima, Вы писали:
F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
VD>у меня все как часы работает.
У меня тоже. Отладка хрома отваливается только потосу что не пережевывает объем отладочной информации. Хотя скорее всего инспектор пару раз отваливается за собой и валит студию. Символ-сервер то в 15-й отлельный и он справляется хоть и медленно (натурально с fastlink он может отладочную инфу грузить минут 5-15 в зависимости от IO). Даж юзеры на SSD предпочитают выждать. Всё остальное по части шарпа — даже с набором некотопых плагинов — проблем не было. С установкой 17-й пояаились рандомные крэши обоих студий. Мне кажется преимущественно до той стадии когда всё хорошенько прогрузится. Но казалось бы — как 15-ю зацепили? В общем не знаю. Я перегружаю хост раз в неделю или две, так что побоку.
VD>Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.
if-else писать никто не запрещает, а типичный прикладной код — линейка о перекладывании данных. Ты же на это смотришь совершенно под иным углом. В мои последние 100К шарпового кода — есть ровно два места куда вставлю новый шарповый ПМ. Поэтому — да, полноценный — куда приятнее. Хорошо, что сделали хоть какой-то. Плохо, что засорили switch. Имхо match — это то что нужно. Пофигу, но как-то традиционней и понятнее.
Ты мне вот что скажи лучше — есть ли такой язык где бы возвращаемый параметр мог быть именован? Ну т.е. HashSet.Add returns bool added или success, а не безликий bool?
И можно ли считать тупл с одним элементом — так, как буд-то его вовсе нет? Чисто теоретически.
VD>Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.
Я поставил, но не спешу переходить. Если можешь потерпеть — потерпи неделю-две до первых фиксов. Я сейчас вообще в ксамарин студии колбашусь — и плююсь в основном.
В целом — переходить однозначно нужно.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается. VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Я не ставил RC или каких либо SDK из "новой" эры. Очевидно, что что-то не так. Согласись — новый компилятор откуда-то должен был появиться. Может я проморгал обновление если оно было. Не знаю. Сегодня уже лень проверить.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается. VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Попробуй макрос сделать. Может это просто мутация какая
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
VD>Разве это не фичи 7-го Шарпа?
Проверил работу локальных функций:
static string ToText(string text)
{
if (!text.StartsWith("<hint>", StringComparison.InvariantCultureIgnoreCase))
return text;
void XmlToString(StringBuilder builder, XContainer container)
{
foreach (var n in container.Nodes())
{
switch (n)
{
case XElement e when e.Name == "br" || e.Name == "bl": builder.AppendLine(); break;
case XContainer c: XmlToString(builder, c); break;
case XText t: builder.Append(t.Value); break;
}
}
}
var sb = new StringBuilder();
XmlToString(sb, XElement.Parse(text));
return sb.ToString();
}
Работают. Но вывода типов для них нет, по сему типы параметров надо указывать всегда. Лажает Майкрософт. До Немерла 2006-го не дотягивают.
А с кортежами проблема:
(int x, string y) foo()
{
return (42, "yaho!");
}
Пишет:
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(209,16,209,29): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8137: Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported
то есть нужна какая-то дополнительная либа...
Ага. С этим тоже разобрался. Надо было поставить NuGet-пакет System.ValueTuple.