有没有办法使用resharper属性指定发布条件?

时间:2016-10-26 23:08:47

标签: c# attributes resharper static-analysis

假设我们有方法

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

有没有办法告诉Resharper的静态分析传递给此方法的值在之后永远不会为空?

1 个答案:

答案 0 :(得分:4)

有两种方法可以实现这一目标:

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

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

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