gpt4 book ai didi

c# - 可能返回 default(T) 的异步泛型方法的正确可空注释

转载 作者:行者123 更新时间:2023-12-03 09:33:21 25 4
gpt4 key购买 nike

我正在将代码库转换为具有可为空引用类型的 C#8。我遇到了一种类似于 in this question 的方法但异步。

public async Task<T> GetAsync<T>()
{
// sometimes returns default(T); => warning CS8603 Possible null reference return
}

T 可以是任何类型,包括可为空的引用类型或可为空的值类型。

明确地说,我理解为什么这种方法会触发警告。我想知道的是可以使用哪些注释来解决它。
  • 我知道我可以使用 #nullable disable 或 default(T)! ,但我希望有一些不那么“锤子”的东西。
  • 我知道我不能用 [return: MaybNull]因为这适用于 Task本身,而不是 T .

  • 是否有任何其他属性/注释我可以应用以使编译器满意,或者是 default(T)!我唯一的选择?

    最佳答案

    根据我的经验,您可以使用 Task<T?> GetAsync<T>() where T: class解决您的问题。

    关于c# - 可能返回 default(T) 的异步泛型方法的正确可空注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60891504/

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