Вопросы с тегом «nullable-reference-types»

По вопросам, связанным с ссылочными типами C # 8, допускающими значение NULL.

3
Что ?[]? синтаксис в C #?
Пока я изучал делегат, который на самом деле является абстрактным классом Delegate.cs, я увидел следующий метод, в котором я не понимаю Почему возвращаемое значение использует, ?хотя это уже ссылочный ( класс ) тип ?[]? смысл по параметру Могли бы вы объяснить? public static Delegate? Combine(params Delegate?[]? delegates) { if (delegates …

4
Почему этот код выдает предупреждение компилятора «Возможный возврат нулевой ссылки»?
Рассмотрим следующий код: using System; #nullable enable namespace Demo { public sealed class TestClass { public string Test() { bool isNull = _test == null; if (isNull) return ""; else return _test; // !!! } readonly string _test = ""; } } Когда я строй это линия , отмеченная !!!выдает …

3
Наилучшая практика использования Nullable Reference Types для DTO
У меня есть DTO, который заполняется чтением из таблицы DynamoDB. Скажем, сейчас это выглядит так: public class Item { public string Id { get; set; } // PK so technically cannot be null public string Name { get; set; } // validation to prevent nulls but this doesn't stop database …

2
Как использовать C # 8.0 обнуляемые ссылочные типы с базовыми моделями Entity Framework?
Я включаю C # 8.0 Обнуляемые ссылочные типы в проекте .NET Core 3.0. Проект использует Entity Framework Core 3.0 для доступа к базе данных. Ниже приведена модель данных, название которой не должно быть нулевым. public class Vehicle { public int Id { get; private set; } public string Title { …

1
Как использовать .NET отражение для проверки обнуляемого ссылочного типа
C # 8.0 вводит обнуляемые ссылочные типы. Вот простой класс с обнуляемым свойством: public class Foo { public String? Bar { get; set; } } Есть ли способ проверить свойство класса использует обнуляемый ссылочный тип через отражение?

2
Могу ли я сказать C # обнуляемым ссылкам, что метод по сути является пустой проверкой на поле
Рассмотрим следующий код: #nullable enable class Foo { public string? Name { get; set; } public bool HasName => Name != null; public void NameToUpperCase() { if (HasName) { Name = Name.ToUpper(); } } } На Name = Name.ToUpper () я получаю предупреждение, что Name - это возможная нулевая ссылка, …

1
Что такое Неизвестный Nullability в C # 8?
В C # 8.0 мы можем иметь обнуляемые ссылочные типы. Документы утверждают, что существует 4 типа обнуляемости. Первые 3 довольно понятны, но я не понимаю смысла «неизвестного». В документах говорится, что он используется с обобщениями, но когда я пытаюсь вызвать метод для неограниченной переменной типа T в обобщениях, он просто …

5
Может ли ненулевой ссылочный тип в C # 8 быть нулевым во время выполнения?
Мне кажется, на самом деле нет никакой гарантии, что ненулевая переменная никогда не будет иметь значение null. Представьте, что у меня есть класс с одним свойством, которое не может быть обнуляемым: public class Foo { public Foo(string test) { Test = test; } public string Test {get;set;} } Теперь может …

1
Обнуляемая информация о ссылочном типе, не предоставленная FirstOrDefault
Я хотел протестировать новую возможность ссылочных типов обнуляемого в C # 8.0. Я запустил новый проект, ориентированный на .NET Core 3.0, включил в .csprojфайл допустимые ссылочные типы и начал кодировать. Я создал простой список, который принимает string[]и возвращает stringв этом массиве, который равен abc. Теперь, поскольку я не уверен, что …

2
Почему мы получаем предупреждение о нулевой ссылке с возможным разыменованием, когда нулевая ссылка кажется невозможной?
Прочитав этот вопрос на HNQ, я продолжил читать о Nullable Reference Types в C # 8 и провел несколько экспериментов. Я очень хорошо знаю, что 9 раз из 10, или даже чаще, когда кто-то говорит: «Я нашел ошибку компилятора!» это на самом деле дизайн, и их собственное недоразумение. И так …

3
Обнуляемый ссылочный тип в C # 8 при использовании классов DTO с ORM
Я активировал эту функцию в проекте с классами объекта передачи данных (DTO), как показано ниже: public class Connection { public string ServiceUrl { get; set; } public string? UserName { get; set; } public string? Password { get; set; } //... others } Но я получаю ошибку: CS8618: Необнуляемое свойство …

2
C # не может сделать тип `notnull` обнуляемым
Я пытаюсь создать тип, похожий на Rust Resultили Haskell, Eitherи я дошел до этого: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError> Value; public Result(TResult result) => Value = result; public Result(TError error) => Value = error; public static implicit operator …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.