gpt4 book ai didi

C# 泛型类 : infer non-nullable type from nullable type parameter

转载 作者:行者123 更新时间:2023-12-03 16:20:02 27 4
gpt4 key购买 nike

我使用 C# 8 可空引用类型。
我有一个泛型类,它可能接受可为空引用类型作为类型参数。
有没有办法根据泛型类型参数声明不可为空的类型,这些参数可能是可为空的引用类型(甚至是 Nullable 结构)?

abstract class Selector<T>
{
T SelectedItem;

// how to make item parameter not nullable?
abstract string Format(T! item);

// how to make item parameter not nullable?
Func<T!, string> FormatFunction;
}

最佳答案

使用 DisallowNullAttribute :

using System.Diagnostics.CodeAnalysis;

abstract class Selector<T>
{
T SelectedItem;

public abstract string Format([DisallowNull] T item);
}

var selector = default(Selector<string?>)!;
selector.Format(null); //warning CS8625: Cannot convert null literal to non-nullable reference type.

关于C# 泛型类 : infer non-nullable type from nullable type parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64692956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com