我有一個擴展方法,它返回一個值。在這種情況下,應該設置一個特定的位在一個字節:如果不使用返回值,是否有可能發出警告?
public static byte SetBit(this byte b, int bitNumber, bool value)
{
if (value)
{
return (byte)(b | (1 << bitNumber));
}
return (byte)(b & ~(1 << bitNumber));
}
返回的值需要重新分配給一個變量,因爲我不能結合this
和ref
:
byte myByte = 3;
myByte = myByte.SetBit(1, false);
這是容易忘記意外的任務。有人會想,方法直接改變價值。
對於String.Replace
,Resharper?/ VisualStudio?警告我,純法的返回值不使用:
我以某種方式方法,這也可能嗎?
「返回的值需要再次分配給一個變量,因爲我不能將這個和ref相結合」真的嗎?我剛剛嘗試過,它工作得很好... –
'ref this byte b' will not compile for me @KirkWoll –
或者,寫一個[Roslyn分析器](https://github.com/dotnet/roslyn/wiki/如何寫-Ac%23-分析器和代碼修復) - 這是爲你的代碼庫強制執行特定模式的好方法。您甚至可以編寫它,以便將其嵌入您的解決方案中 - 非常適合特定於公司的項目。 –