标签:nullable-reference-types
-
C#不能使`notnull`类型为可空 - c#
我正在尝试创建类似于Rust的Result或Haskell的Either的类型,到目前为止,我已经做到了: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult […]
-
C#8“默认”是什么?对泛型类型做什么? - c#
只是使用C#8.0 Beta并更新我的一些代码以使用可为空的引用类型。 我有一个Trie实现的节点样式类。每个节点都有一个T类型的值。根节点的构造函数不需要值,因此我将其设置为default。 这是一个简短的版本: public class Trie<T> { public readonly bool caseSensitive; public […]
-
如何使[DisallowNull]显示对象初始化程序的错误? - c#
.Net Core允许您使用[DisallowNull]装饰属性,以告诉编译器即使该属性本身被声明为允许,也不允许代码将该属性设置为null。例如: public sealed class Test { [DisallowNull] public string? Text { get; set; } } 当您尝试将属性显式设置为null时,这可以很好地工作: […]
-
在将泛型引用类型与泛型类型一起使用时收到警告 - c#
我有一个类似于以下的泛型类型,它带有一个名为ExecuteAsync()的方法,该方法可以返回一个对象或null: public interface IStoredProcedure<Result, Schema> where Result : IBaseEntity where Schema : IBaseSchema { Task<Re […]
-
可以将外部功能用作可空防护吗? - c#
C#8引入了可为空的引用类型,这是一个非常酷的功能。现在,如果您希望获取可为空的值,则必须编写所谓的警卫: object? value = null; if (value is null) { throw new ArgumentNullException(); } … 这些可能是重复的。我想知道的是,是否有可能避免为每个变量编写这种类型的代码,而是有一个防 […]