是否有一种方法可以使用resharper属性指定post条件?

本文关键字:属性 resharper post 条件 可以使 方法 一种 是否 | 更新日期: 2023-09-27 18:15:13

假设我们有一个方法

internal static void NotNull<T>(T value)
    where T : class
{
    if (value == null)
    {
        throw new ArgumentNullException();
    }
}

是否有一种方法可以告诉Resharper的静态分析,传递给这个方法的值永远不会为空?

是否有一种方法可以使用resharper属性指定post条件?

有两种方法可以做到这一点:

[JetBrains.Annotations.ContractAnnotation("halt <= null")]
public void NotNull(object obj)
{
  // ...
}

和像

这样的扩展方法
[JetBrains.Annotations.NotNull]
public static T NotNull<T>(this T obj)
{
  // ...
  return obj;
}

我个人更喜欢第二个,因为它很流畅,你可以继续你的代码:)