Вопросы с тегом 'c#-7.2'

По вопросам, связанным с разработкой с С#, версия 7.2.
5

Зачем использовать модификатор параметра "in" в С#?

Итак, я (думаю, я) понимаю, что делает in модификаторе параметра. Но то, что оно делает, кажется, довольно избыточно. Обычно, я думаю, что единственная причина, чтобы использовать ref бы изменить вызывающую переменную, которая явно запрещенный i...
15 окт. '18 в 15:46
2

Каков прецедент для (С# 7.2) "частного защищенного" модификатора?

В С# 7.2 представлен частный защищенный модификатор. Я всегда защищал доступ к полям со свойствами, предоставляя доступ через методы Get/Set, поскольку я обычно не хочу, чтобы внутреннее состояние моего объекта было изменено чем-либо, кроме моего с...
22 нояб. '17 в 9:01
2

В чем разница между Span <T> и Memory <T> в С# 7.2?

В С# 7.2 представлены два новых типа: Span<T> и Memory<T>, которые имеют лучшую производительность по сравнению с более ранними типами С#, такими как string[]. Вопрос: В чем разница между Span<T> и Memory<T>? Почему я испол...
16 нояб. '17 в 4:34
4

Проверьте, является ли значение кортежа значением по умолчанию

Как проверить, является ли System.ValueTuple значением по умолчанию? Пример: (string foo, string bar) MyMethod() => default; // Later var result = MyMethod(); if (result is default){ } // doesnt work Я могу вернуть значение по умолчанию в MyMe...
30 апр. '18 в 12:35
3

пядь <t> не требует назначения локальной переменной. Это особенность?

Я замечаю, что следующее будет компилироваться и выполняться, даже если локальные переменные не инициализируются. Является ли это особенностью Span? void Uninitialized() { Span<char> s1; var l1 = s1.Length; Span<char> s2; Uninit...
04 апр. '18 в 14:05
4

Использование С# 7.2 в модификаторе для параметров с примитивными типами

С# 7.2 введены in модификаторе для передачи аргументов по ссылке с гарантией того, что получатель не будет изменять этот параметр. В этой статье говорится: Вы никогда не должны использовать структуру, отличную от readonly, как параметры, поскольк...
09 июн. '18 в 19:33
1

Являются ли readonly структуры, которые должны быть неизменными, когда в массиве?

(Примечание. Этот пример кода требует С# 7.2 или новее, а Nuget System.Memory. Предположим, что мы имеем a readonly struct следующим образом: public readonly struct Test { public Test(int value) { Value = value; } public i...
12 дек. '17 в 15:06
4

В чем смысл модификатора для классов

В С# 7.2 вводится модификатор in для параметров, который имеет смысл для структур и, в частности, для readonly structs. Также разрешено использовать его для ссылочного типа void Method(in StringBuilder value) { } Как ссылочные типы передаются по...
07 мар. '18 в 10:25
2

Общий класс, параметр которого расширяет вложенный класс

Этот С# не компилирует: public class IdList<T> where T : IdList<T>.Item { List<T> List = new List<T>(); public T this[int id] { get => List[id]; set { } } public class Item { public int id; // Not...
28 авг. '18 в 15:33
2

Как сделать readonly structs XML сериализуемым?

У меня есть неизменяемая структура с одним полем: struct MyStruct : IXmlSerializable { private readonly double number; public MyStruct(double number) => this.number = number; } И я хочу, чтобы это стало возможным для сериализац...
05 дек. '17 в 7:45
1

Должны ли мы всегда возвращаться по ссылке, если можем?

Теперь с С# 7 мы можем вернуться по ссылке ref с return ref. Из того, что я собрал, ссылки 32 или 64 бит. Теперь, если бы у меня была структура Coord с long X и long Y, это было бы 128 бит, поэтому было бы легче вернуть координату (а также передать ...
03 мая '18 в 14:18
1

Где я могу найти новый Span <T>?

Все пишут о том, насколько велик новый тип Span<T>, поэтому я с нетерпением ждал начала перезаписи нескольких методов в моих библиотеках, но где я действительно нахожу его? Я обновил Visual Studio 2017 до последней версии 15.5.0, где в журнале...
05 дек. '17 в 9:33
2

Почему кастинг структуры через указатель медленный, а Unsafe.As быстро?

Фон Я хотел создать несколько целых размерных struct (т.е. 32 и 64 бит), которые легко конвертируются в/из примитивных неуправляемых типов одного размера (то есть Int32 и UInt32 для 32-разрядной структуры в частности). Затем структуры будут раскры...
15 июн. '18 в 7:27
1

Где С# 7.2 в настройках проекта визуальной студии?

Я видел, как люди использовали и обсуждали функции С# 7.2, но я не могу найти его. Ive получил последние обновления и только до версии 7.1. почему и как я могу получить v7.2? спецификации: Visual studio 2017 версия 15.4.4 Visual С# 2017 - 0036...
16 нояб. '17 в 11:34
0

В С# 7.2 можно ли использовать аргументы "in" в делегатах, интерфейсах или абстрактных классах?

Я заметил, что при создании интерфейса, делегата или абстрактный метод с in аргументе, я получаю ошибку компиляции (CS0518: Предопределенный типа "System.Runtime.InteropServices.InAttribute" не определен или импортирован). Сообщение об ошибке не оче...
04 июн. '18 в 17:54