如果没有使用返回值,是否可以收到警告?

时间:2016-04-21 00:27:46

标签: c# resharper

我有一个扩展方法,它返回一个值。在这种情况下,它应该在一个字节中设置一个特定的位:

public static byte SetBit(this byte b, int bitNumber, bool value)
{
    if (value)
    {
        return (byte)(b | (1 << bitNumber));
    }
    return (byte)(b & ~(1 << bitNumber));
}

需要再次将返回值分配给变量,因为我无法合并thisref

byte myByte = 3;
myByte = myByte.SetBit(1, false);

很容易忘记意外分配。有人可以认为,该方法直接改变了价值。

对于String.Replace,Resharper?/ VisualStudio?警告我,不使用纯方法的返回值

String

我的方法在某种程度上也可以吗?

1 个答案:

答案 0 :(得分:6)

Resharper Annotations

似乎有一个Nuget包

这包括MustUseReturnValueAttribute

[MustUseReturnValue("Use the return value to...")]
public byte Foo()
{    
}

正如@Kirk Woll在评论中指出的那样,也可以编写自定义Roslyn Analyzer