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

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

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? 警告我, 不使用纯方法返回值

串

这在某种程度上对我的方法也有可能吗?

似乎有一个Nuhar Package for Resharper Annotations

这包括MustUseReturnValueAttribute

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

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