Описание тега c#-7.0
Версия C#, выпущенная в 2017 году, добавила кортежи значений, локальные функции, базовое сопоставление с образцом, ref locals и return, async main и различные другие новые функции. В большинстве случаев вам также следует указать тег C#.
3
ответа
Как я могу включить все функции C# 7 в проекте Visual Studio 2017?
После выхода Visual Studio 2017 я хотел попробовать создать простой консольный проект с новыми функциями C# 7. Я ожидал, что я просто скачаю новую Visual Studio 2017, затем создам новый консольный проект и смогу использовать новые функции C# 7. Но я…
08 мар '17 в 15:33
1
ответ
Передача списка<T> по ссылке на метод, принимающий ref ICollection<T>
Я заметил, что List<T> не может быть передано таким методам, как: Foo<T>(ref ICollection<T> bar) Foo<T>(out ICollection<T> bar) Принимая во внимание, что, с другой стороны, Foo<T>(ICollection<T> bar) принима…
19 янв '18 в 23:44
1
ответ
C# 7 семантика сопоставления с образцом
У меня есть два блока кода, которые я хотел бы считать равными: Сначала if основанный блок Затем то же самое, но преобразуется в регистр переключения типов. (извините за плохие красные волнистые маркеры Resharper, Resharper пока не понимает этого) К…
06 янв '17 в 11:09
4
ответа
Равенство и полиморфизм
С двумя неизменяемыми классами Base и Derived (который является производным от Base) я хочу определить равенство так, чтобы равенство всегда полиморфно - то есть ((Base)derived1).Equals((Base)derived2) позвоню Derived.Equals операторы == а также != …
26 фев '19 в 01:13
2
ответа
Использование функций C# 7 внутри View в проекте ASP.NET MVC Core
Я искал другие вопросы, связанные с этим, но ни один, кажется, не совсем то, что я ищу. У меня есть сайт, работающий на ASP.NET Core с новой структурой проекта в VS2017. Файлы кода, использующие функции C#7, компилируются нормально. Но попытка испол…
16 мар '17 в 20:38
2
ответа
Приведение нового кортежа к старому дает ошибку компиляции
С кодом ниже, class Program { static void Main(string[] args) { Tuple<int, int> test = TupleTest(); } static (int, int) TupleTest() { return (1, 2); } Я получаю следующую ошибку времени компиляции. Ошибка CS0029 Невозможно неявно преобразовать…
23 апр '17 в 21:53
1
ответ
Почему я не могу вернуть ссылку на значение словаря?
public class PropertyManager { private Dictionary<ElementPropertyKey, string> _values = new Dictionary<ElementPropertyKey, string>(); private string[] _values2 = new string[1]; private List<string> _values3 = new List<string>…
03 янв '18 в 10:39
1
ответ
Перечислитель для класса, составляющего Список
Я имею: public class MyList : IEnumerable<MyItem>, IEnumerable { private List<MyItem> list = new List<MyItem>(); IEnumerator IEnumerable.GetEnumerator() { ??? } IEnumerator<MyItem> IEnumerable<MyItem>.GetEnumerator() { …
22 авг '18 в 01:54
1
ответ
Синтаксис регистра переключателя указывает тип данных
Сегодня на работе я делал обзор кода, как и сейчас, и снова, но сегодня я увидел синтаксис, которого раньше не видел. Я искал в интернете это безрезультатно, и что еще более интересно, что, несмотря на использование той же версии Visual Studio, то е…
28 апр '17 в 14:16
2
ответа
Нулевой оператор объединения (??) с возвратом
Мне было интересно, почему это можно сделать в C# 7.0: int? test = 0; int test2 = test ?? throw new Exception("Error"); ..но не это: int? test = 0; int test2 = test ?? return; Кто-нибудь может это объяснить?
14 окт '18 в 09:18
2
ответа
Назначение локальных функций делегатам
В C# 7.0 вы можете объявлять локальные функции, то есть функции, живущие внутри другого метода. Эти локальные функции могут обращаться к локальным переменным окружающего метода. Поскольку локальные переменные существуют только во время вызова метода…
13 дек '16 в 20:16
1
ответ
Могу ли я использовать (строка a, строка b) синтаксис кортежа с.NET 4.5.2?
Я создаю приложение в Visual Studio 2017, предназначенное для работы на компьютере под управлением Windows XP, но возможность использовать литералы кортежа C# 7.0 была бы идеальным компонентом для моего решения. Я думал, что могу просто добавить два…
22 сен '17 в 22:51
1
ответ
C# 7.0 ValueTuples против анонимных типов
Глядя на новые C# 7.0 ValueTuples, мне интересно, будут ли они полностью заменены Anonymous Types, Я это понимаю ValueTuples являются структурами и, следовательно, ведут себя немного иначе, чем Anonymous Types которые являются классами. Однако я не …
15 дек '16 в 13:09
2
ответа
Синтаксический оператор нечетного возврата
Я знаю, что это может звучать странно, но я даже не знаю, как искать этот синтаксис в Интернете, а также я не уверен, что именно означает. Итак, я просмотрел некоторый код MoreLINQ, а затем заметил этот метод public static IEnumerable<TSource>…
26 июл '17 в 10:00
2
ответа
Обнуляемый оператор в объявлении foreach с использованием C#7
Я смотрел на этот пример кода в C# 7.0 и я не был уверен в том, что происходило под капотом и производительности этой петли. foreach (var c in text ?? throw new ArgumentNullException(nameof(text))) { ... } Мои вопросы: Условный оператор получает уда…
16 фев '17 в 03:16
1
ответ
C# Неизменность создания глобального магазина
Для моего проекта я пытаюсь создать единое глобальное хранилище для обслуживания изменяемого состояния, например: // Immutable program state sealed public class State : IEquatable<State> { public State(ClientsConnections clientsConnections, Im…
16 авг '18 в 23:13
4
ответа
Шаблон сборки TFS 2015 не может собрать функции C#7
Мы используем TFS 2015 в качестве нашего сервера сборки для непрерывной интеграции с определениями сборки xaml. TfvcTemplate12.xaml - это шаблон процесса сборки, который мы используем. Когда вышла Visual Studio 2015, мы обновили шаблоны сборки, уста…
27 мар '17 в 22:37
1
ответ
Почему в C# 7 ValueTuples реализован метод Equals, а не оператор двойного равенства?
Рассмотрим следующий фрагмент кода: var tuple1 = (7, "foo"); var tuple2 = (7, "foo"); var tuple3 = (42, "bar"); Assert.That(tuple1.Equals(tuple2), Is.True); //This passes Assert.That(tuple1.Equals(tuple3), Is.False); //This passes Assert.That(tuple1…
10 фев '17 в 22:59
2
ответа
C#7 ref return: что остается в памяти: экземпляр класса или свойство ref ref?
public ref int GetData() { var myDataStructure = new MyDataStructure(); return ref myDataStructure.Data; } public class MyDataStructure { private int _data; public ref int Data => ref _data; } Это использует новую функцию возврата C#7. После возв…
17 фев '18 в 12:29
1
ответ
VB.NET эквивалент для C# 7 Тип сопоставления
Есть ли VB.NET, эквивалентный этому? Обратите внимание, в частности, на bmp в примере кода. public void MyMethod(Object obj) { if (obj is Bitmap bmp) { // ... } } Или короткий синтаксис сопоставления с is является эксклюзивным для C#? РЕДАКТИРОВАТЬ:…
26 ноя '17 в 11:09