我有一个扩展方法,它返回一个值.在这种情况下,它应该在一个字节中设置一个特定的位:
public static byte SetBit(this byte b, int bitNumber, bool value)
{
if (value)
{
return (byte)(b | (1 << bitNumber));
}
return (byte)(b & ~(1 << bitNumber));
}
Run Code Online (Sandbox Code Playgroud)
返回的值需要再次分配给变量,因为我无法组合this和ref:
byte myByte = 3;
myByte = myByte.SetBit(1, false);
Run Code Online (Sandbox Code Playgroud)
很容易忘记意外分配.有人可以认为,该方法直接改变了价值.
对于一个String.Replace,Resharper?/ VisualStudio?警告我,不使用纯方法的 返回值:
这在某种程度上也适用于我的方法吗?
似乎有一个Nuhar Package for Resharper Annotations
这包括一个 MustUseReturnValueAttribute
[MustUseReturnValue("Use the return value to...")]
public byte Foo()
{
}
Run Code Online (Sandbox Code Playgroud)
正如@Kirk Woll在评论中指出的那样,也可以编写一个自定义的Roslyn Analyzer
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |