Описание тега null-propagation-operator
Оператор распространения значений NULL, представленный в C# 6.0, устраняет необходимость в нескольких проверках NULL в цепочке вызовов методов.
4
ответа
Нулевой оператор распространения и foreach
Читать много об операторе распространения Null ?.Я не нашел ответа, полезно ли это в следующем сценарии. Код, который выдает: int[] values = null; foreach ( var i in values ) // Throws since values is null. { // ... } Чтобы это работало, я должен до…
30 дек '14 в 10:26
3
ответа
Монадическая проверка на ноль в C# 6.0
Я наткнулся на интересный сайт, где рассматриваются некоторые из новых (предлагаемых) функций C# 6.0. Вы можете прочитать это здесь: Возможные возможности C# 6.0. Что мне особенно интересно, так это монадическая проверка нуля (также известная как оп…
13 янв '15 в 12:11
2
ответа
C# 6 Нулевое распространение, какое значение устанавливается, когда объект нулевой
var result = myObject?.GetType(); В этом сценарии, что будет значением Result, если myObject нулевой?
03 дек '15 в 01:29
1
ответ
C# 6 Нулевая условная проверка
Как мне преобразовать это в C# 6 Null Conditional Check? var durationhours = product.ProductAudioAsset.TotalLengthInSeconds != null ? (short?)TimeSpan.FromSeconds(product.ProductAudioAsset.TotalLengthInSeconds.Value).TotalHours : null; где TotalLeng…
23 июн '16 в 00:34
1
ответ
Ошибка при использовании нуль-распространяющего / нуль-условного оператора C# 5.0
Я использую проект.NET 4.5 в VS 2013. Почему следующий код содержит ошибку? var w = Request.Properties["MS_HttpContext"] as System.Web.HttpContextWrapper; string IP = w?.Request.UserHostAddress; //fail to compile Я нашел этот код в этом блоге MSDN.
08 апр '15 в 14:47
1
ответ
Замена с нулевым распространением для проверки нуля перед условным оператором
Увидев похожий вопрос, мне было интересно, если следующее выражение... if (attribute != null && attribute.Description == input) ... будет вести себя (почти) идентично следующему варианту нулевого распространения? if (attribute?.Description =…
05 дек '16 в 14:48
4
ответа
Как я могу использовать Nullable Operator с оператором Null Conditional?
Старый Путь int? myFavoriteNumber = 42; int total = 0; if (myfavoriteNumber.HasValue) total += myFavoriteNumber.Value *2; Новый способ? int? myFavoriteNumber = 42; total += myFavoriteNumber?.Value *2; //fails
13 мар '16 в 12:55
2
ответа
Нулевое распространение - выполнение функции при проверке на ноль
Можно ли это реализовать с помощью оператора распространения Null (??)? origObj = model.ProjectId != null ? GetObj(model.ProjectId.Value) : null;
14 июн '17 в 00:55
3
ответа
Нулевой условный оператор для "обнуления" существования элемента массива
Новый оператор с нулевым условием C# 6.0 - это удобный инструмент для написания более сжатого и менее запутанного кода. Предполагая, что у одного есть массив клиентов, вы можете получить значение null вместо длины, если customers является нулевым, и…
05 май '16 в 00:31
1
ответ
Почему я не могу использовать нулевой оператор распространения в лямбда-выражениях?
Я часто использую нуль-распространяющий оператор в своем коде, потому что он дает мне более читаемый код, особенно в длинных запросах, и мне не нужно проверять ноль каждый отдельный класс, который используется. Следующий код выдает ошибку компиляции…
05 мар '15 в 14:21
3
ответа
Оператор '?' не может быть применен к операнду типа 'T'
Пытаясь сделать Feature универсальный, а потом вдруг компилятор сказал Оператор '?' не может быть применен к операнду типа 'T' Вот код public abstract class Feature<T> { public T Value { get { return GetValue?.Invoke(); } // here is error set …
15 сен '15 в 07:49
1
ответ
Нулевой условный оператор, на некоторых машинах не работает должным образом
У меня есть следующий код в DelegatingHandler для проекта WebApi 2. protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var content = await request.Content?.ReadAsStri…
13 май '16 в 20:08
1
ответ
Побочные эффекты, короткое замыкание и нулевой распространяющийся оператор вызова метода (?.)
Когда целевой объект является нулевым в условном доступе к члену / операторе распространения нулевого значения, а член является методом, оцениваются ли аргументы метода? То есть в следующем коде g() называется? SomeClass x = null; x?.Foo(g()); Как н…
27 июн '18 в 19:39
1
ответ
Дерево выражений для o?.Value
Я хотел бы сгенерировать это предложение, используя деревья выражений: o?.Value o является экземпляром любого класса. Есть ли способ?
21 сен '16 в 10:12
3
ответа
C# 6.0 Нулевой оператор распространения и присвоение свойства
Этот вопрос был полностью пересмотрен в интересах подробного объяснения. Я заметил то, что кажется довольно слабым ограничением оператора распространения нулей в C# 6.0 в том, что вы не можете вызывать установщики свойств для объекта, который был пе…
11 сен '15 в 08:42
1
ответ
Roslyn C#6? Компиляция оператора выглядит беспорядочно в универсальных типах
Давайте рассмотрим следующее определение класса: public class MyClass<T> { public T t; public bool? c1(T obj) => obj?.Equals(null); public bool? c2() => t?.Equals(null); } В конце концов, некоторые заметки: MyClass<T> не накладыват…
12 июн '16 в 21:13
1
ответ
Есть ли в JavaScript что-то похожее на нуль-распространение в C#?
У меня много кусков JavaScript, как if(myobject != undefined && myobject.someprop == something) и мне интересно, существует ли синтаксис, чтобы сделать это более компактным (даже если это какой-то "хак").
06 сен '16 в 20:04
1
ответ
Xamarin Studio C# Нулевой распространяющий оператор
Прежде чем заполнить баг-кейс о Xamarin Studio, я хотел спросить ваше мнение public class Class1 { public int AProp { get; set; } } Учитывая этот простой сценарий Class1 c; var aProp = c?.AProp; не должны aProp быть выведен как int? экземпляр как он…
13 июн '17 в 13:22
1
ответ
.NET нативный код падает на конструкторе?.Invoke() (распространение ноль)
Потратив голову на лучшую часть дня, я наткнулся на очень странную проблему с кодом.NET, скомпилированным с использованием.NET Native (используется для приложений Windows UWP). Следующий код прекрасно работает в любой среде выполнения.NET, включая M…
08 май '17 в 20:53
2
ответа
Нулевой условный оператор C# 6 для сбоя метода
Следующее (C# Interactive) компилируется, но взрывается. Не уверен, что мне не хватает... class Test { public Func<object> GetSomething = null; } var t = new Test(); var result = t?.GetSomething();
25 фев '16 в 19:14